如何最好地构造MySQL表中的数据?

问题描述 投票:0回答:1

我正在为生产设施构建调度应用程序。

[建筑物中有8个独立的生产单元,每个给定的一天,每个单元都有不同的生产能力(例如,生产单元A有6个人在2020年6月1日工作)。

我正在尝试找出构造这些数据的最佳方法,以便可以通过与他们的ERP进行每晚同步来轻松地更新它们。

目前,我将所有数据存储在一个表中,如下所示:

ID (primary key) | Date | Production Cell ID | Resource

日期,生产单元ID或资源都不能唯一,因为它们每个都将重复很多次。

鉴于此,我不清楚如何运行查询来1)检查是否存在行,以及2)相应地插入或更新。

是否有更好的方法来构造此数据?

例如,每个生产单元应该是具有自己的日期列表的自己的表吗?

非常感谢。

mysql
1个回答
0
投票

A 化合物唯一索引可以很好地满足您的目的。它允许您指定一组列,以使这些列中的数据组合必须唯一。

出于您的目的:

CREATE UNIQUE INDEX pcell_date_index
ON production_cell_data(date,cell_id);

这假定生产单元+日期的任何组合只应有一行。

获取/更新唯一行(不带ID)的查询将需要在where子句中同时包括两列,但在索引上应表现得很好。

© www.soinside.com 2019 - 2024. All rights reserved.