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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
多表连接时,主从表的确定
在进行多表的联接查询前,我们需要对多表进行相关的处理,比方说确定主从关系,建立外键,联接时确定中间表等操作.         一般情况下,建表时先建主表,再建从表,那怎么确定主从关系呢,进一步建立外键约束?         比方说,有三个表,customers表(custom
数据库主从表和主细表简介
主从表是一对多的关系     主表中的一条记录在从表有相应的多条记录     举例:     主表客户表存储客户信息     custno   name     100         xx     200         yy         从表订单表存储客户的订单信息     custno     名称     数量     100           aa
SQL查询:主从表 报表方式显示
--测试表与测试数据 CREATE TABLE test_main ( id INT, value VARCHAR(10), PRIMARY KEY(id) ); -- 创建测试子表. CREATE TABLE test_sub ( id INT, main_id INT, value VARCHAR(10), PRIMARY KEY(id) ); -- 插入测试主表数
DataSet中的表之间关系--子从表
   在.net数据处理应用中,经常需要处理主从表情况。通过主表主键显示明细表对应记录。下面介绍子从表的一些使用方法。{不能启用此约束,因为不是所有的值都具有相应的父值。}  DataRelation -创建DataTable 对象之间的父/子关系。 //如果关系主键只有一个,不需用DataColumn数组 SqlConnection sqlcon = new SqlConnection(@"constr"); sqlcon.Op
ASP.net主从表显示
<br />ASPX: <br /><%@   Page   language= "c# "   Codebehind= "NestedRepeater.aspx.cs "   <br />AutoEventWireup= "false "   Inherits= "eMeng.NestedRepeater "   %> <br /><%@   Import   Namespace= "System.Data "   %> <br /><br /><HTML> <br /><body> <br /><for
小猫统计:主从表编辑的两种关联方式
怎样定义两个表的关联?一般有两种情况,第一种,两个表已经有关联字段,例如订单表与雇员表,这两个表都有“雇员ID”这个字段,在制作连接时,直接关联这两个字段即可。第二种,两个表没有关联字段,需要在创建表的时候,在从表中新增一个关联字段。例如在体校运动员管理案例中,运动员形态测试表中,没有关联字段,需要在创建表结构时,创建从表关联字段。
主从表的关系与导入导出的关系
1.主从表设外键约束后,当从表中数据被导出(被删除)后,主表的相对应的数据也被删除这时从表把原来的数据再导入(插入)原表,会被外銉约束拒绝导入.对于这种规则可以使用触发器来判断插入规则,在从表中不需要再建立外銉建立约束的好外,保证数据的完整性,坏处是影响执行的效率
设置一对多关系
C# CopyCode imageCopy Code [DefaultClassOptions] public class Contact : Person { //... private Department department; [Association("Department-Contacts", typeof(Department))] public D
[MSSQL]主从表级联删除三种方法
在ERP系统设计或者其他运用系统经常遇到主从表的问题。 方法一:程序中处理               采用事务处理删除,代码省略。 方法二:触发器处理  示例 -- ============================================= -- Author: -- Create date: -- Description: -- ============
JQuery实现的主从表关系
源码地址:http://download.csdn.net/source/3215606可以实现主表与从表的关系,例如:一张单据可以由两批货物在页页上显示,都通过JQuery实现.可操作性强也也利于用户体验,其实包含了ajax,xml以及json等方法,JQuery学习的好工具,希望能给大家有所帮助,有错误的请大家批评指证。