说我有一张叫做学生的桌子.您更喜欢哪些列的命名约定?你也可以推荐自己的.
Student
-------
StudentID
StudentName
MentorID
Student
-------
StudentID
Name
MentorID
Student
-------
ID
Name
MentorID
Run Code Online (Sandbox Code Playgroud)
Ray*_*Ray 19
我会选择第二个.
Student
-------
StudentID
Name
MentorID
Run Code Online (Sandbox Code Playgroud)
我喜欢在主键中使用表的名称,但它不需要在每个字段上.另外MentorID也就是我如何命名外键(假设Mentor是它所指向的表的名称).
这样,Student表中的MentorID字段与Mentor表中的MentorID字段具有相同的名称.有些人不喜欢它,因为在连接表时可能会有点混乱,但我更喜欢在连接中明确命名字段的表,
Bjö*_*örn 19
由于常规RDBMS是一种层次结构,DBMS包含一个数据库 - 一个数据库包含一个表 - 一个表包含一个列 - 一个列包含一个值,我不喜欢在列名中迭代使用表名.
我的投票结果如下:
Student
--------
id (pk)
name
mentor (fk) (alt. mentorId)
Run Code Online (Sandbox Code Playgroud)
选择正确的字段相当容易,如果表之间有连接,我经常重命名列名,即:
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
Run Code Online (Sandbox Code Playgroud)
由于一些sql格式化程序大写的东西,我跟随下面:
student
-------
id
name
mentor_id
Run Code Online (Sandbox Code Playgroud)
这样我就可以在db中保持单词分离.
在OO代码中,我使用相应的驼峰名称
mentorId,getMentorId()
我会亲自去:
Students
--------
student_id
first_name
last_name
mentor_id
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用下划线,因为研究表明它们与骆驼符号相比极大地提高了代码的可读性.
我也可以理解只使用"id"而不是"student_id"的论据,所以我并不反对.
我更喜欢最后一个,以便表之间的连接看起来像:
SELECT blah blah blah
FROM Student INNER JOIN Mentor
ON Student.MentorID = Mentor.ID
Run Code Online (Sandbox Code Playgroud)
但这几乎与"你喜欢骆驼案吗?"一样主观.:P
最重要的是要保持一致.我不得不在过去处理一些他们无法决定标准的数据库.因此在某些表中,PK将是StudentID,其他是Student_ID和其他ID.或者,当用作外键时,它们并未使用一致的名称.哦,我开始咆哮......
我更喜欢第二个:
Students
-------
StudentID
Name
MentorID
Run Code Online (Sandbox Code Playgroud)
在哪里:
ID在列名末尾用 进行标识。EndDate,BeginDate来表示日期。| 归档时间: |
|
| 查看次数: |
22481 次 |
| 最近记录: |