yhkqwkz446
2016-01-29 03:52
采纳率: 18.2%
浏览 2.3k

SQL主从表关系的确定~~~

有3张表:工序表\产品表\产品-工序表,一个产品对应多个工序,请问这些表的主从关系怎么确定???

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • threenewbee 2016-01-29 03:54

    如果一个表中的主键(唯一)对应另一个表的外键字段(多个),前一个表就是主表。
    一个产品对应多个工序,那么就是工序表设置一个productid的字段,关联产品表的id。

    评论
    解决 无用
    打赏 举报
  • threenewbee 2016-01-29 03:56

    你的情况无非就是把工序表又拆成2个表,产品-工序表其实就是工序表的一部分,你的工序表其实就是原先工序表的其它字段,那么你的产品-工序表还需要一个工序id,指向工序表的id
    这两个表是1:1的,不存在主从关系。

    评论
    解决 无用
    打赏 举报
  • -0000- 2016-01-29 05:23

    如果一个表中的主键(唯一)对应另一个表的外键字段(多个),前一个表就是主表。
    一个产品对应多个工序,那么就是工序表设置一个productid的字段,关联产品表的id。
    你的情况无非就是把工序表又拆成2个表,产品-工序表其实就是工序表的一部分,你的工序表其实就是原先工序表的其它字段,那么你的产品-工序表还需要一个工序id,指向工序表的id
    这两个表是1:1的,不存在主从关系。

    评论
    解决 无用
    打赏 举报
  • lambda-fk 2016-01-29 07:41

    对于建模我想说一下:

    1--关系的确定
    首先要判断一些依赖关系是否存在。
    并不是所有表的存在都必须有主从关系的。
    比如一个系统中的涉及一些共有的信息。他们的存在就是被其他表使用的。
    2--如果一张表可以通过其他表进行关系查询得出的话,这张表是否有存在的必要呢?
    3--如果一个名称概念可以继续拆分,那么他应该可以分解成好几张子表的。
    也就是不能存在数据项
    ...
    ...
    其中依赖关系的描述就很重要

    看看您的表:
    工序表\产品表\产品-工序表
    工序表:
    首先这个工序表,按照概念上的区分工序应该是生产产品中的一个环节,那么它应该像计算机的操作指令一样
    和这个具体的产品没有关系。所以这张表不设置外键(只针对你目前提出的三张表,如果你还有其他的表在考虑)
    至少一道工序并不知道是在生产哪件具体的产品的

    产品表:
    一个产品需要多到工序才能完成,所以这个表有一个联合主键 就是产品id和工序id。 工序id是工序表的主键

    产品-工序表:
    这张表可以通过前面2张表的联合查询可以得到,不要这张表
    从另一方面它体现的是多对多的关系

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题