gpt4 book ai didi

sql - 命名主键列ID或* _id更好吗?

转载 作者:行者123 更新时间:2023-12-04 16:36:29 24 4
gpt4 key购买 nike

我已经使用Rails几年了,已经习惯了命名主键列id的约定。但是我在SQL书籍中遇到了很多示例,这些示例都将主键列命名为employee_id表的employeesfeed_id表的feeds

第二系统的一个优点似乎是,您可以更多地使用USING()来生成更简洁的SQL查询:

select feeds.title, items.title from items inner join feeds USING(feed_id);

相对于
select feeds.title, items.title from items inner join feeds on feeds.id = items.feed_id;

哪种命名约定更好?经验丰富的数据库管理员青睐哪个?

另外,将表名复数是否更好?

最佳答案

Tablename_Id是我的强烈偏爱。当您确实连接到Fks时,您确切地知道要连接到什么,并且在表a中的ID联接位置时不会犯错,这意味着下面的表b是这种操作很容易的一个示例,特别是如果您复制on子句从其他地方

FROM tablea a
JOIN tableb b
ON a.ID = b.tableaid
JOIN tablec c
ON a.ID = c.tablebid

在上述情况下,您确实想加入B.Id,但忘记了复制时将其更改为a。它将起作用,并为您提供不正确的结果集。如果改用table_id,则查询将无法通过语法检查。

使用Id的另一个问题是您要处理复杂的报表。由于repport查询必须具有带有各个名称的字段,因此如果用表名命名id,您可能会浪费时间编写一堆不需要的别名。

现在,使用ORM的人并没有写很多SQl,但是他们写的东西和报告编写者写的东西通常都是复杂的,复杂的语句。您需要设计数据库,以使其比简单的查询更容易执行这些操作。

将ID用作标识字段的名称被认为是SQ1反模式。 http://www.amazon.com/SQL-Antipatterns-Programming-Pragmatic-Programmers/dp/1934356557/ref=sr_1_1?s=books&ie=UTF8&qid=1308929815&sr=1-1

关于sql - 命名主键列ID或* _id更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6469730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com