当前位置:  开发笔记 > 数据库 > 正文

Sql中列命名的最佳实践

如何解决《Sql中列命名的最佳实践》经验,为你挑选了5个好方法。

说我有一张叫做学生的桌子.您更喜欢哪些列的命名约定?你也可以推荐自己的.

Student
-------
StudentID
StudentName
MentorID

Student
-------
StudentID
Name
MentorID

Student
-------
ID
Name
MentorID

Ray.. 19

我会选择第二个.

Student
-------
StudentID
Name
MentorID

我喜欢在主键中使用表的名称,但它不需要在每个字段上.另外MentorID也就是我如何命名外键(假设Mentor是它所指向的表的名称).

这样,Student表中的MentorID字段与Mentor表中的MentorID字段具有相同的名称.有些人不喜欢它,因为在连接表时可能会有点混乱,但我更喜欢在连接中明确命名字段的表,



1> Ray..:

我会选择第二个.

Student
-------
StudentID
Name
MentorID

我喜欢在主键中使用表的名称,但它不需要在每个字段上.另外MentorID也就是我如何命名外键(假设Mentor是它所指向的表的名称).

这样,Student表中的MentorID字段与Mentor表中的MentorID字段具有相同的名称.有些人不喜欢它,因为在连接表时可能会有点混乱,但我更喜欢在连接中明确命名字段的表,


我绝对推荐这种方法.对于更大和更复杂的数据库,编写具有大量连接的复杂查询更为常见 - 这种主键命名约定使得查询,编写和理解查询变得更加容易.

2> Björn..:

由于常规RDBMS是一种层次结构,DBMS包含一个数据库 - 一个数据库包含一个表 - 一个表包含一个列 - 一个列包含一个值,我不喜欢在列名中迭代使用表名.

我的投票结果如下:

Student
--------
id (pk)
name
mentor (fk) (alt. mentorId)

选择正确的字段相当容易,如果表之间有连接,我经常重命名列名,即:

SELECT s.id AS StudentID, s.name AS StudentName, m.id AS MentorId, m.name AS MentorName
FROM Studens AS s
INNER JOIN Mentors AS m ON m.id=s.mentor



3> Andreas Pete..:

由于一些sql格式化程序大写的东西,我跟随下面:

student
-------
id
name
mentor_id

这样我就可以在db中保持单词分离.

在OO代码中,我使用相应的驼峰名称

mentorId,getMentorId()



4> Tom H..:

我会亲自去:

Students
--------
student_id
first_name
last_name
mentor_id

我更喜欢使用下划线,因为研究表明它们与骆驼符号相比极大地提高了代码的可读性.

我也可以理解只使用"id"而不是"student_id"的论据,所以我并不反对.


以前有一项研究,最初使它看起来像Camel Case提高了可读性(尽管仅在已经使用过它的人中),但是后来的研究使用了一种改进的测量方法,反之则发现:http://www.cs。 kent.edu/~jmaletic/papers/ICPC2010-CamelCaseUnderScoreClouds.pdf

5> Dana..:

我更喜欢最后一个,以便表​​之间的连接看起来像:

 SELECT blah blah blah
 FROM Student INNER JOIN Mentor
      ON Student.MentorID = Mentor.ID

但这几乎与"你喜欢骆驼案吗?"一样主观.:P

最重要的是要保持一致.我不得不在过去处理一些他们无法决定标准的数据库.因此在某些表中,PK将是StudentID,其他是Student_ID和其他ID.或者,当用作外键时,它们并未使用一致的名称.哦,我开始咆哮......

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有