我对数据库设计有疑问,假设是金融/股票软件
在软件中,用户将能够创建订单, 这些订单可能包含公司产品或第三方产品
典型产品表:
PRIMARY KEY INT productId
KEY INT productcatId
KEY INT supplierId
VARCHAR(20) name
TEXT description
...
但我还需要公司产品的更多详细信息,例如:
INT instock
DATETIME laststockupdate
...
问题是,我应该如何存储数据? 我在考虑 2 个选项:
1 -
将公司和第三方产品放在一个表中,
一些列不会被第三方产品使用
标识公司产品由供应商 ID 标识
2 -
将公司产品和第三方放在不同的表中
3 - [新,感谢 RibaldEddie]
有单品表,
公司产品在单独的表格中有附加信息
提前致谢!
最佳答案
您没有提到需要存储单独的供应商信息位,只是一种产品具有额外信息。因此,您可以拥有一个产品表和一个 InHouseProductDetails 表,该表具有返回存储公司特定信息的产品表的 productId 外键。然后,当您运行查询时,您可以将产品表连接到详细信息表。
好处是您不必在产品表中包含可为空的列,因此您的数据更安全,不会损坏,并且您不必将产品本身存储在两个单独的表中。
哦哦,和 3 一起去吧! 3 是最好的!
关于sql - 关于数据库设计的疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2263556/