【问题标题】:Naming database table fields to designate relationships?命名数据库表字段以指定关系?
【发布时间】:2013-02-07 07:50:10
【问题描述】:

假设我有表 Student 和 Mentor

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

学生

学生证
学生姓名
Student2MentorID

【问题讨论】:

    标签: database naming-conventions


    【解决方案1】:

    从头开始 - 您可能已经知道了 - 有几种方法可以表示您的数据库模式,我的意思是,通过使用图表,例如 ER-diagrams 这可以帮助您(和您的团队)保持最新状态数据库的设计,从而使其更易于理解。

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

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

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

    • 有时,(众所周知),我们无法严格遵循标准,因此在这些情况下,我在选择大型关系名称时会使用自己的标准。

    • 通常,我还使用三个字母的前缀来命名表属性。例如,在我的表trips 中,我的字段将是tri_id,tri_distance,tri_elapsed

    • 还要注意,在上述项目中,我没有包含外键。那我就去吧。当谈到 FK 时,我(和我的团队)很容易意识到该领域是 FK。 如果我们按照前面的例子,我想知道谁在每次旅行中开车(为了更容易,我们假设只有一个人开车一次)。所以我的桌子现在是这样的:tri_id, per_id, tri_distance, tri_elapsed。现在您可以很容易地意识到 per_id 只是表的一个外部字段。只是,另一个帮助提示。

    只需按照这些简单的步骤,您就可以节省小时,而且还可能会让人头疼。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      我认为:您可以根据模块代表(学者、销售、商店)为表添加前缀(3 个字母)

      模块:学者 ->sc

      表:scStudent(IdStudent,nameStudent..)

      表:scMentor(IdMentor,nameMentor...)

      关系

      scMentorStudentIdMentorStudent pk..)

      您可以使用微软的 EF 表示法:
      http://weblogs.asp.net/jamauss/pages/DatabaseNamingConventions.aspx

      【讨论】:

      • 感谢分享链接。很有用。
      【解决方案3】:

      最好使用下划线... 我建议简单地使用现有的命名约定规则,例如: http://www.oracle-base.com/articles/misc/naming-conventions.php

      【讨论】:

        猜你喜欢
        • 2019-09-16
        • 1970-01-01
        • 1970-01-01
        • 2010-09-05
        • 2011-08-19
        • 2013-12-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多