2 yhkqwkz446 yhkqwkz446 于 2016.01.29 11:52 提问

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

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

4个回答

caozhy
caozhy   Ds   Rxr 2016.01.29 11:54

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

caozhy
caozhy   Ds   Rxr 2016.01.29 11:56

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

u013129324
u013129324   2016.01.29 13:23

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

fk002008
fk002008   2016.01.29 15:41

对于建模我想说一下:

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

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

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

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!