【发布时间】:2013-02-07 07:50:10
【问题描述】:
假设我有表 Student 和 Mentor
是否有人使用如下关系命名约定?我认为这种方式可以快速查看关系。有人会建议更好的方法吗?
学生
学生证
学生姓名
Student2MentorID
【问题讨论】:
标签: database naming-conventions
假设我有表 Student 和 Mentor
是否有人使用如下关系命名约定?我认为这种方式可以快速查看关系。有人会建议更好的方法吗?
学生
学生证
学生姓名
Student2MentorID
【问题讨论】:
标签: database naming-conventions
从头开始 - 您可能已经知道了 - 有几种方法可以表示您的数据库模式,我的意思是,通过使用图表,例如 ER-diagrams 这可以帮助您(和您的团队)保持最新状态数据库的设计,从而使其更易于理解。
现在,就我个人而言,在实现方面,我确实使用了某种命名约定。例如:
对于大型项目,我使用双下划线来分隔表格类别,(即hr__personnel、hr__clocks、hr__timetable、vehicles__cars、vehicles__trips)等等。
现在,有了两个表之间的关系,我确实包含了两个(或所有)所涉及的表名。 (即hr__personnel_timetable、vehicles__cars_trips等)
有时,(众所周知),我们无法严格遵循标准,因此在这些情况下,我在选择大型关系名称时会使用自己的标准。
通常,我还使用三个字母的前缀来命名表属性。例如,在我的表trips 中,我的字段将是tri_id,tri_distance,tri_elapsed
还要注意,在上述项目中,我没有包含外键。那我就去吧。当谈到 FK 时,我(和我的团队)很容易意识到该领域是 FK。
如果我们按照前面的例子,我想知道谁在每次旅行中开车(为了更容易,我们假设只有一个人开车一次)。所以我的桌子现在是这样的:tri_id, per_id, tri_distance, tri_elapsed。现在您可以很容易地意识到 per_id 只是表的一个外部字段。只是,另一个帮助提示。
只需按照这些简单的步骤,您就可以节省小时,而且还可能会让人头疼。
希望这会有所帮助。
【讨论】:
我认为:您可以根据模块代表(学者、销售、商店)为表添加前缀(3 个字母)
模块:学者 ->sc
表:scStudent(IdStudent,nameStudent..)
表:scMentor(IdMentor,nameMentor...)
关系
scMentorStudent(IdMentorStudent pk..)
您可以使用微软的 EF 表示法:
http://weblogs.asp.net/jamauss/pages/DatabaseNamingConventions.aspx
【讨论】:
最好使用下划线... 我建议简单地使用现有的命名约定规则,例如: http://www.oracle-base.com/articles/misc/naming-conventions.php
【讨论】: