[英]Naming the MYSQL id column
命名作为mysql表主键的列的最佳实践是什么? 我见过两种方法:
我原本以为只需id就足够了,因为你仍然可以通过选择一个句号和表名来继续来唯一地识别列(即对于表'cars'中的列'id',你可以选择它作为汽车。ID)
还是我过分思考这一切?
我通常将它们命名为[tblname] _id。 原因很简单。 假设我有两张桌子:
member
member_id
member_alias
...
post
post_id
member_id
post_text
...
现在我可以使用MySQL的USING语法加入它们,并为每个连接保存几个字符:
SELECT post.*, member_id, member_alias FROM post
INNER JOIN member USING (member_id)
当然,这主要是主观的。
除了作为SQL数据库之外,MySQL没有特别考虑。 所以问题就变成了SQL数据库应该使用什么命名约定。
注意到您可以随意命名列(在允许的名称范围内),在评估最佳名称选择时,请考虑:
关于1,考虑:
关于2,考虑到随着你的架构的发展,什么是主要的可能变成外来的。 什么是可能变得很多。 仅因为基数更改而重命名列有帮助吗?
最后,请考虑单列主键并不总是人为键。 在这个例子中,它实际上可能是一个外键(1-1关系):
任务{task_id,task_created_date} - 在task_created_date上创建了task_id的任务
TASK_DUE {task_id,task_due_date} - 任务与task_id到期due_date
我对当前表的主键使用“ID”,对外键字段使用tableName_id,但它通常归结为个人偏好。
我曾在使用tblMyTable作为表名的公司工作,然后将其用作表中每个字段的前缀。 我不喜欢这样做。
我总是去tablename_id。 这样我可以使用USING。
此外,如果你是坏的并且没有在多表连接中指定表别名,那么你的sql会更加清晰。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.