我正在为生产设施构建调度应用程序。
[建筑物中有8个独立的生产单元,每个给定的一天,每个单元都有不同的生产能力(例如,生产单元A有6个人在2020年6月1日工作)。
我正在尝试找出构造这些数据的最佳方法,以便可以通过与他们的ERP进行每晚同步来轻松地更新它们。
目前,我将所有数据存储在一个表中,如下所示:
ID (primary key) | Date | Production Cell ID | Resource
日期,生产单元ID或资源都不能唯一,因为它们每个都将重复很多次。
鉴于此,我不清楚如何运行查询来1)检查是否存在行,以及2)相应地插入或更新。
是否有更好的方法来构造此数据?
例如,每个生产单元应该是具有自己的日期列表的自己的表吗?
非常感谢。
A 化合物唯一索引可以很好地满足您的目的。它允许您指定一组列,以使这些列中的数据组合必须唯一。
出于您的目的:
CREATE UNIQUE INDEX pcell_date_index
ON production_cell_data(date,cell_id);
这假定生产单元+日期的任何组合只应有一行。
获取/更新唯一行(不带ID)的查询将需要在where子句中同时包括两列,但在索引上应表现得很好。