![]() |
1
2
您没有提到需要存储单独的供应商信息,只是一种产品有额外的信息。因此,可以有一个products表和一个inhouseproductdetails表,该表将productID外键返回到存储公司特定信息的products表。然后,运行查询时,可以将products表连接到details表。 这样做的好处是,在products表中不必有可为空的列,因此您的数据更安全,不必将产品本身存储在两个单独的表中。 哦,跟3一起走!3是最好的! |
![]() |
2
1
老实说,我认为1或2的选择完全取决于其他一些因素(目前我只能选择2个因素):
如果您确实为所有库存使用一个表,那么稍后决定拆分它们,您可以。您建议了某种类型的供应商标识符。在表格中列出供应商(包括贵公司),并提供库存的键。那就没关系了。 至于union,我已经有一段时间没有编写原始SQL了——所以我不确定union是否是正确的语法。但是,我知道您可以从多个表中提取数据。其实刚刚发现了: Retrieving Data from Multiple Tables with Sql Joins |
![]() |
3
1
我同意里鲍德迪的观点。只需添加一件事:在inhouseProductDetails表中对该外键施加唯一约束。这将加强两个表之间的一对一关系,因此您不会意外地以一个产品的两个内部产品详细信息记录(可能来自某个数据加载出错或其他原因)结束。 约束就像是防御性驾驶;它们有助于防止意外…… |
![]() |
4
0
我会建议使用第1点。当另一个供应商出现时会发生什么?在一个产品表/产品类上进行扩展也更容易。 |
![]() |
5
0
还要考虑应用程序的测试。将所有数据都放在一个表中,可能会要求测试应用程序的第三方和公司元素,以便对两者进行任何更改。 如果你很高兴你的单元测试能解决这个问题,那就不用担心了…如果您依赖于一个人类测试人员,那么在评估变更的影响时,它将成为一个更大的问题。 就我个人而言,我会选择一个产品表,其中包含常见的详细信息,以及针对第三方和公司详细信息的单独表。 |
![]() |
6
0
一个表,用于具有供应商表的外键的产品;在供应商表中包含您自己的公司 库存表可以用来存储任何产品的库存水平信息,而不仅仅是您的产品。 请注意,您无论如何都需要库存表,这只会使DB模型更不受公司的关注-因此,如果您需要存储有关第三方产品的库存级别信息,则不需要更改DB。 |
![]() |
hello_programmers · Mysql从其他表输出一列 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
![]() |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
|
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 1 年前 |
|
Kugelfisch · 用php为数据库加密数据 1 年前 |