Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 设置表关系_Mysql - Fatal编程技术网

Mysql 设置表关系

Mysql 设置表关系,mysql,Mysql,我在mysql数据库中设置关系时遇到困难。我有两张桌子。这些表的关系是公司和销售订单号 我本以为mySQL workbench会自动检测到这种关系,但事实并非如此。我发现了很多关于使用外键定义关系的引用,但它们都基于单个字段,我的关系同时依赖于公司和销售订单编号字段 定义这些表的关系的正确方法是什么?您必须使用外键来定义关系吗 谢谢 Table: sales_order_header - (PK) sys_rowid - (UNIQUE) company - (UNIQUE) sa

我在mysql数据库中设置关系时遇到困难。我有两张桌子。这些表的关系是公司和销售订单号

我本以为mySQL workbench会自动检测到这种关系,但事实并非如此。我发现了很多关于使用外键定义关系的引用,但它们都基于单个字段,我的关系同时依赖于
公司和销售订单编号
字段

定义这些表的关系的正确方法是什么?您必须使用外键来定义关系吗

谢谢

Table: sales_order_header

 - (PK) sys_rowid

 - (UNIQUE) company 

 - (UNIQUE) sales_order_number 

 - Order Total

“您必须使用外键定义关系吗?”绝对不是,外键是关于引用完整性而不是关系的。鉴于FKs是关于引用完整性的,您应该在引用公司表的公司的sales\u order\u标题中有1个,公司不应该存在于sales\u order\u详细信息中(这是多余的)但是你应该有一个关于销售订单号的FK,它引用销售订单号。公司必须存在销售订单号,这是一个多公司数据库,因此我们可以有两个销售订单号相同但公司不同(公司不是下订单的人)。因此,如果我仅在销售订单号上设置FK,则关系将不正确。谢谢。“我们可以有两个销售订单,它们的销售订单号相同,但公司不同。”-你是说你可以有两个销售订单头?是的,数据库是多公司的,因此一个数据库/系统可以操作两个不同的公司。有少量的共享信息,但在大多数情况下,每个表中都有一个公司代码。如果您登录到“A公司”,那么您只能看到来自您公司的记录,同样,如果您登录到“B公司”。因此,您可以有两个销售订单标题,它们的销售订单编号相同,但公司代码不同。
Table: sales_order_detail

 - (PK) sys_rowid

 - (UNIQUE) company

 - (UNIQUE) (FK) sales_order_number

 - (UNIQUE) sales_order_line

 - sales_order_line_total