在设计数据库时使用表前缀是一个好习惯吗?

Rah*_*sad 3 database-design

在设计数据库时使用表前缀是一个好习惯吗?

对于像" user_detail " 这样的表,
我使用列名,如ud_name,ud_email等.

我这样做是因为我想为每个列(在每个表中)保留唯一的名称,以便以后在加入时不会出现任何冲突列名的问题.

虽然我的一些同事在读取列名时遇到了问题(我不知道为什么),并且他们建议Name应该尽可能简单易读,所以我不应该使用任何前缀.

数据库设计遵循的标准命名法是什么?有前缀是不是很糟糕?请通过一些链接支持您的回答.

谢谢你
喜欢:)

Joe*_*own 8

包括orignial海报在内的几张海报都吹捧了独特专栏名称的好处,好像它是天生的,显而易见的天生的好东西.我问:为什么列名中的唯一性会好?四十年前,有大型机数据存储技术需要独特的列名.二十年前,这污染了PC上的dBase设计.由于占主导地位的数据存储模型已经成为关系型DBMS,因此没有必要,而且我认为,没有任何理由要求使用唯一的列名称.

有一个称为"域名完整性"的概念,它只是意味着没有包含表的上下文,列名就没有意义,就像没有其拥有的模式和数据库等的上下文时表名没有意义一样.

如果不在 SQL中引用其包含的表,则无法引用列.如果您认为表名太长而且您不想一直输入它,您可以为选择列表添加别名.

如果使用通过将表名或表名的缩写卡在列名中而产生的唯一列名,这与使用带有点而不是前缀的表名(或缩写别名)有何不同强调?我认为事实并非如此.不同之处在于强制父项的指示符成为子项名称只会使该子项名称的可读性降低,并且不可避免地导致更多冗余和不太可读的SQL.

我在SQL Mag论坛上的这篇文章中讨论了我的首选命名约定.

最好的名称是最短的自然名称,清楚地描述了它们包含的数据的内容或含义.这些名称可以而且必须在包含它们的对象的上下文中进行.尝试强加唯一性或使用其他约定(如匈牙利化表和列)只会增加混乱,使您的数据库更难以阅读和理解,这反过来又会使您的系统不那么容易支持.