Database design 数据库表公共ID的命名约定是什么

Database design 数据库表公共ID的命名约定是什么,database-design,Database Design,假设我的桌子的名字是 Entries 那么表的id列将是 EntryID 但是公众身份证呢?以下是一些备选方案以及我的问题: EntryID_public - postfix should be for content (_on), underscore should be avoided EntryID_Public - postfix should not have uppercase EntryIdPublic - could work, but acronyms with two l

假设我的桌子的名字是

Entries
那么表的id列将是

EntryID
但是公众身份证呢?以下是一些备选方案以及我的问题:

EntryID_public - postfix should be for content (_on), underscore should be avoided
EntryID_Public - postfix should not have uppercase
EntryIdPublic - could work, but acronyms with two letter should be capitalized according to some.
PublicID - too anonymous column name, no reference to its content
EntryIDPublic - three character acronym, looks bad and is hard to read.
到目前为止,我认为最好的选择是最好的。标准怎么说

标准怎么说

我不认为有任何这样的命名标准。你可以根据你的可读性和易读性来命名


我更喜欢把它命名为EntryID\u public,但这一切都取决于一个人的容易程度和选择。许多人可能会争辩,因为他们会发现任何其他公约都更具可读性。但是就命名约定标准而言,没有这样的标准。

虽然没有固定的规则,但多年来我已经学习并使用了一些约定。首先,我避免在表中使用复数名称。这简直令人困惑。在您的示例中,我将表命名为
entry

然后,id将是
条目\u id

在我的约定中,_id指定条目_id是该表的主键,它通常是一个数字序列号

我使用的其他主键类型:

  • 表_代码:一个字符键
  • 表guid:生成的guid
  • 创建时间:创建时间戳
  • 更新时间:更新时间戳
这使得在实现与另一个表的外键关系时,键(table_id)来自特定的表,并且如果使用ER图表工具,它们通常可以很好地使用此约定

我唯一一次发现需要重命名外键时,是在存在自引用关系时,或者在多对多分辨率中,其中涉及来自同一个表的多个外键。通常,可以很容易地将其作为前缀,如下所示:

家长\个人\身份证 儿童身份证

总之,我不完全清楚你所说的公共id是什么意思?如果您的意思是,您有一个候选键,那么它的命名方式应该描述列的实际内容。典型的例子是一个人的SSN(社会保险号码)