链接数据库表标准实践

时间:2014-09-24 21:20:52

标签: mysql sql database database-design

我正在寻找处理以下数据库情况的标准方法。

两个数据库表 - 一个名为Part,一个名为Return。在Part中,我们有关于零件编号,成本,收到日期等的信息

Return用于将该部分返回给供应商。它将具有回溯跟踪编号,发货日期和If Credited。

如果Return未返回供应商,则部件只能有一个Part,但可能没有。

我看到的3个选项是:

  1. PartReturn放在同一张表中,但我不喜欢这个想法,表会变得太大。

  2. 在“部分”表中创建一个字段,以引用与其相关的Return记录的ID。我关注的是,Return

  3. 可能存在与Part无关的自由浮动Return记录
  4. Part表格中创建一个字段,以引用与其相关的PartId记录的ID,使Part字段唯一,因此我无法复制{{1 Id。

  5. 使用#2或#3是否有任何优势或劣势(或者如果这是一个可行的选择,我猜#1)?

    更新:

    我应该在实际中提到这些表会更大,在应用程序中我会在单独的视图中查看退货和零件信息。

2 个答案:

答案 0 :(得分:3)

基本上你有2个实体,Part和Number,1-1关系,其中一个实体是可选的 在这种情况下,您应该为每个实体(即2个表)创建一个表,并使用Part of PK作为Return表中的引用。这是表示此类关系的标准方式。

答案 1 :(得分:2)

解决方案3: 除了你不需要对part_id有一个唯一约束外,只需将它设为PK(几乎相同)