SQL - ID列的命名

Tow*_*wer 4 database-design naming-conventions

我一直想知道SQL中这些ID命名样式的优点和缺点是什么:

CREATE TABLE cache (
id INT AUTO_INCREMENT,
PRIMARY KEY(id)
);

CREATE TABLE cache (
cid INT AUTO_INCREMENT,
PRIMARY KEY(id)
);

CREATE TABLE cache (
cache_id INT AUTO_INCREMENT,
PRIMARY KEY(id)
);
Run Code Online (Sandbox Code Playgroud)

为什么有些开发人员在每个表中使用"id",有些人用表名的一个字母或整个表名和一个下划线作为前缀?

Eri*_*lje 11

主观,但我喜欢使用命名的id(例如customer_id,item_id等)

我的理由是,如果你一致地命名你的外键,它会使连接更容易理解 - 它始终是a.customer_id = b.customer_id.否则,对于使用大量连接的复杂查询,您会有大量的"id"列,并且不会立即明白什么是什么.

ETA:

此外,如果您使用的是MySQL,则可以使用更简单的连接语法,例如:

FROM customers INNER JOIN orders USING customer_id
Run Code Online (Sandbox Code Playgroud)


Jus*_*ner 7

这都是个人喜好.我个人使用Id只是因为我认为每个表都是它自己的实体......然后当我用一个键引用时,它会变成CustomerId或OrderId,具体取决于表的名称.