命名数据库表字段以指定关系?

时间:2013-02-21 20:27:05

标签: database naming-conventions

假设我有表格Student and Mentor

是否有人使用关系的命名约定如下?我认为通过这种方式可以很快看到关系。有人会建议更好的方法吗?

Student

StudentID
StudentName
Student2MentorID

3 个答案:

答案 0 :(得分:1)

从头开始, - 你可能已经知道了 - 有几种方法来表示你的数据库架构,我的意思是,使用图表,例如ER-diagrams,帮助你(和你的团队)保持与数据库的设计约会,从而使其更易于理解。

现在,就个人而言,我确实使用了某种命名约定。例如:

  • 对于大型项目,我使用双下划线来分隔表类别(即。hr__personnelhr__clockshr__timetablevehicles__cars,{{1等等。

  • 现在,在两个表之间建立关系,我确实包含了两个(或所有)所涉及的表名。 (即。vehicles__tripshr__personnel_timetable等)

  • 有时,(众所周知),我们不能严格遵守标准,因此在选择大型关系名称时,我会使用自己的标准。

  • 作为一项规则,我还通过三个字母的前缀命名表属性。例如,在我的表vehicles__cars_trips中,我的字段将为tripstri_idtri_distance

  • 另请注意,在上面的项目中,我没有包含外键。那么我就去吧。说到FK,我(和我的团队)很容易意识到这个领域是一个FK。 如果我们按照前面的例子,我想知道每次旅行中谁开车(为了更容易,我们假设只有一个人驾驶一次旅行)。所以我的表现在是这样的:tri_elapsed tri_id per_idtri_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