【问题标题】:SQL Server Table Design (Products and revisions)SQL Server 表设计(产品和修订)
【发布时间】:2018-02-20 14:59:22
【问题描述】:

我正在创建一个新数据库。主表是产品。这些产品中的每一个都有修订版。每个修订版都有关于它们的信息。

所以说我拥有的产品(Prod1、Prod2、Prod3 等)。然后说 Prod1 有修订版 (1, 2),Prod2 有修订版 (1),Prod3 有修订版 (1, 2, 3),依此类推。

然后每个版本都有关于它们的信息。 Prod1.Rev1 有信息(info1、info2、info3 等) Prod2.Rev1 有信息(info1、info2、info3 等)等等。

信息也可能位于不同的组中。所以 info1、info2 可能是一个组,info3 和 info4 可能是不同的组。

为这种情况设置数据库的最佳方法是什么?

【问题讨论】:

  • 听起来您需要一个名为 Groups 的表来识别信息项属于哪个组??

标签: sql-server database-design


【解决方案1】:

这是我关于如何以关系方式构建它的想法,产品将与修订具有一对多的关系,因此修订将具有与产品的主键值匹配的外键。 Revisions 与 Info 项具有一对多的关系,因此 Info 将包含一个与 Revisions 的主键值相关的外键值。然后,组也将与信息项具有一对多的关系,因此项还需要保存与组的主键相关的外键。我希望这会有所帮助。

【讨论】:

  • 忘记信息组。那是另一种野兽。这就是我的想法。有一个表格来保存带有产品 ID 的产品,然后有一个带有修订 ID 和产品 ID(外键)的修订表。因此,信息将具有修订表的外键,但没有产品表,对吗?
  • 没错。 info的关系是直接跟revisions的关系,因为products跟revisions有关系,revisions跟info有关系,如果需要全部数据的话,可以把这3个表连在一起。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-27
  • 1970-01-01
  • 2011-08-03
  • 2021-03-07
  • 2021-01-24
  • 2011-11-27
  • 1970-01-01
相关资源
最近更新 更多