MySQL命名约定,字段名称是否应包含表名?

Oma*_*awi 16 php mysql database naming-conventions

一位朋友告诉我,我应该将表名包含在同一个表的字段名中,我想知道为什么?它应该是这样吗?例:

(Table) Users  
(Fields) user_id, username, password, last_login_time
Run Code Online (Sandbox Code Playgroud)

我看到前缀'user_'是没有意义的,因为我知道它已经是一个用户.但我也想听听你的意见.注意:我在php,mysql中编程.

cle*_*tus 13

我同意你的看法.我唯一想把表名或缩写形式放在主键和外键上或者"自然"名称是关键字的地方.

Users: id or user_id, username, password, last_login_time
Post: id or post_id, user_id, post_date, content
Run Code Online (Sandbox Code Playgroud)

我通常使用'id'作为主键字段名称,但在这种情况下我认为user_id和post_id也完全正常.请注意,发布日期称为"post_date",因为"date"是一个关键字.

至少这是我的惯例.你的旅费可能会改变.

  • 在主键和外键上使用`user_id`而不是`id`的一个好处是它使NATURAL连接变得轻而易举. (5认同)

Fil*_*ara 10

我认为没有理由包括表名,这是多余的.在查询中,您可以将字段称为<table name>.<field name>(例如"user.id").


Noo*_*ilk 5

对于“id”和“name”等通用字段,最好将表名称放入其中。

原因是在跨多个表编写联接时可能会造成混乱。

这确实是个人喜好,但这就是其背后的原因(我总是这样做)。

无论您选择什么方法,请确保它在项目中保持一致。