假设我有表格Student and Mentor
是否有人使用关系的命名约定如下?我认为通过这种方式可以很快看到关系。有人会建议更好的方法吗?
Student
StudentID
StudentName
Student2MentorID
答案 0 :(得分:1)
从头开始, - 你可能已经知道了 - 有几种方法来表示你的数据库架构,我的意思是,使用图表,例如ER-diagrams,帮助你(和你的团队)保持与数据库的设计约会,从而使其更易于理解。
现在,就个人而言,我确实使用了某种命名约定。例如:
对于大型项目,我使用双下划线来分隔表类别(即。hr__personnel
,hr__clocks
,hr__timetable
,vehicles__cars
,{{1等等。
现在,在两个表之间建立关系,我确实包含了两个(或所有)所涉及的表名。 (即。vehicles__trips
,hr__personnel_timetable
等)
有时,(众所周知),我们不能严格遵守标准,因此在选择大型关系名称时,我会使用自己的标准。
作为一项规则,我还通过三个字母的前缀命名表属性。例如,在我的表vehicles__cars_trips
中,我的字段将为trips
,tri_id
,tri_distance
另请注意,在上面的项目中,我没有包含外键。那么我就去吧。说到FK,我(和我的团队)很容易意识到这个领域是一个FK。
如果我们按照前面的例子,我想知道每次旅行中谁开车(为了更容易,我们假设只有一个人驾驶一次旅行)。所以我的表现在是这样的:tri_elapsed
, tri_id
,per_id
,tri_distance
。现在您可以轻松地意识到per_id只是表的外部字段。只是,另一个提示可以提供帮助。
只需按照这些简单的步骤,您就可以节省小时,也可能会有些麻烦。
希望这有帮助。
答案 1 :(得分:1)
我认为:您可以根据模块代表(学者,销售,商店)向表中添加前缀(3个字母)
模块:学者 - > sc
table: scStudent (IdStudent,nameStudent ..)
表: scMentor (IdMentor,nameMentor ...)
关系
scMentorStudent ( IdMentorStudent pk ..)
您可以使用Microsoft的EF表示法:
http://weblogs.asp.net/jamauss/pages/DatabaseNamingConventions.aspx
答案 2 :(得分:0)
最好使用下划线... 我建议只使用现有的命名约定规则,例如: http://www.oracle-base.com/articles/misc/naming-conventions.php