Mysql 理解弱实体和弱关系
如果我有以下ERD:Mysql 理解弱实体和弱关系,mysql,sql,database,erd,Mysql,Sql,Database,Erd,如果我有以下ERD: ------ |Inv | --------- 1 | <<contains>> | m -------- -------- --------- ||Line || 1 --- <<has a>> --- 1 | prod | -------- ---------- -
------
|Inv |
---------
1
|
<<contains>>
|
m
--------
-------- ---------
||Line || 1 --- <<has a>> --- 1 | prod |
-------- ----------
--------
有人能帮我吗?我说得对吗?我哪里出错了?等等
我一直在网上寻找,我想它应该是一个复合主键,包括:
PK = (ID from line, Primary Key from Inv, Primary Key from Prod)
否,Inv的主键和行项目编号足以标识表“行”中的行。如果您想要实现进一步的业务需求——每个产品在每个发票上只能出现一次——您可以对{value from Inv,value from Prod}列对进行额外的唯一约束
实际上,我不会在“Inv”或“Line”中使用自动递增的id号。自动递增的id号可能会留下间隙,而会计师讨厌间隙。从广义上讲,数据库用户也讨厌这类数字的差距。(我们因“丢失”行而受到指责。)
您还需要注意存储产品的id号。如果产品名称发生更改,则在所有过去的发票上都会显示更改。这是在法庭上站在法官不利一边的好方法
PK = (ID from line, Primary Key from Inv, Primary Key from Prod)