【发布时间】:2017-01-10 00:18:30
【问题描述】:
我面临以下问题。
想象一个有两个相关表的关系数据库:
表用户
idUser | email | otherColumns
------ | ----------- | ------------
1 | a@gmail.com | ....
餐桌账单
idBill | value | otherColumns
------ | ------| ------------
1 | 100$ | ....
通过向账单表添加外键以将每个账单与一个用户相关联来建立公共关系。尽管如此,也可以像这样创建一个中间表:
关系表账单用户
id | idUser | idBill
------ | ------ | ------------
1 | 1 | 1
有了这张表,我们可以取得相同的结果,但我认为组织更好。这个选项是否比其他选项更好?还是视情况而定?
最后,我想知道是否有任何标准可以创建这些关系。
谢谢。
【问题讨论】:
-
不要在值字段中存储货币。使该字段成为数字数据类型而不是文本数据类型。当您想对该列进行算术运算时,它只会导致您稍后出现问题
-
我每次都是根据关系来做的。如果是 1:N 我使用第一个选项和一个外键,如果有关系 M:N 我使用中间表。如果是关系 1:N,我认为没有必要创建下一个表。您必须分配更多空间,并且下一张表可能会使复杂的数据库设计难以阅读
标签: mysql sql relational-database