![]() |
1
5
我还将包括一个日期时间戳的付款时收到,并可能标记,如果付款是完整或不完整的金额。 |
![]() |
2
4
|
![]() |
3
2
另一个注意事项是,我们的约定是以单数形式命名实体表,与类名匹配。也就是说,我们命名一行(命名类的一个实例),而不是命名集合。我们要问的问题是,这个表中的一行代表一个什么?我们在类和表中使用这个单数名称。(考虑到反对意见,是的,我确实认识到其他开发人员和其他框架遵循“表名多元化”的惯例。Rails在多元化方面甚至足够聪明,可以从Person类生成“people”表。)
外键列的命名方式与我们命名它们的方式完全相同。对于外键列,我们遵循的约定是使用父表的名称,后跟_id。对于同一个表的多个关系,除了表名之外,我们还使用角色的名称,或者使用角色的名称代替表名。 我还建议在数据库中添加外键约束定义,即使MyISAM引擎没有强制执行它们。
在每个表的ID列上添加主键约束(在
使用unqiue索引识别自然键。
这就是亚马逊似乎使用的模式。订单上可能会有奖金优惠券和信用卡,但当涉及到付款时,我只为订单支付一笔款项。 另一种模式是使用帐户,并向帐户应用费用、贷项和付款。这是电话公司等公用事业公司常用的模式。这允许使用诸如当前余额和到期金额之类的概念。
|
![]() |
4
2
我可能有点不对劲,但听起来你们好像在猜测未来的需求。如果是这样的话……不要这样做。没有一刀切的数据库模式——因此不要损害您正在为将来可能会或可能不会构建的应用程序构建的应用程序。
|
![]() |
5
1
|
![]() |
6
0
另外,我会将源代码放在另一个表中,因为当应用程序增长时,您可能需要添加一些源代码。 |
![]() |
Michael Samuel · MYSQL在以下情况下自动创建索引 6 年前 |
![]() |
Patricia Rozario · 数据库设计确保一对一关系 6 年前 |
![]() |
dryhay · MySQL“多对多”关系错误 6 年前 |
![]() |
L. Fox · 我在这里用的是什么样的Laravel雄辩的关系 6 年前 |
![]() |
Geoff Harper · 我应该如何构建关系松散的SQL db 6 年前 |
![]() |
waroxx · SQL—当多个表具有相同的列时,最好怎么做 6 年前 |
![]() |
Lumpi01 · SQL 2不同的注释类型-最佳解决方案? 6 年前 |
![]() |
Hayreddin Tüzel · 预约系统数据库建模[关闭] 6 年前 |