这是一个一般的数据库问题,与任何特定的数据库或编程语言无关。
我以前做过一些数据库工作,但通常都是能用的。这次我想为 future 做打算。
我有一张表存储备件列表。名称、部件号、位置等。我还需要存储它们适用的设备。
一种方法是在备件表中为每个设备创建一个列。这就是它在当前数据库中的处理方式。一个问题是,如果将来我想添加一个新设备,我必须创建一个新列,但这会使编程更容易。
我的想法是创建一个单独的适用性表。它会存储部件 ID 和设备 ID,如果一个部件适用于多个设备,它将有不止一行。
Parts
-------
ID
Name
Description
Etc...
PartsApplicability
-------
ID
PartID
DeviceID
Devices
------
ID
Name
我的问题是这是否是一种有效的方法,它是否比原始方法更有优势,是否有更好的方法来做到这一点?
感谢您的回答。
最佳答案
我同意 Rex M 的回答,这是标准做法。您可以在 PartsApplicability 表上做的一件事是删除 ID 列,并使 PartID/DeviceID 成为复合主键。这将确保您的部件不能多次关联到同一设备,反之亦然。
关于数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2190089/