数据库设计 – 列名称命名约定和最佳实践

在列命名方面,我想就最佳实践提出一些专家意见.

背景是according to Wikipedia,语法如下,

SELECT ... FROM Employees JOIN Timesheets USING (EmployeeID);

效率比

SELECT ... FROM Employees JOIN Timesheets ON (Employees.EmployeeID = Timesheets.EmployeeID);

但是,JOIN … USING语法仅适用于所有主键列具有全局唯一名称.因此,我想知道这是否被认为是正确的事情.

就个人而言,我总是习惯用PK列id和外键列othertable_id创建表.但是这样就无法使用USING或NATURAL JOIN.

任何设计风格的链接或桌子设计的最佳实践指南也将受到赞赏!

解决方法

之前有人问过这个问题.

如果您有共同且非常模糊的名称,则使用表名称作为前缀.也就是说,几乎每个查询都需要对别名进行别名处理.

所以对于我有的员工表

EmployeeID
EmployeeName
Comment
Salary
StartDate
EndDate
InsertedDateTime
...

维基百科实际上说:

The USING construct is more than mere syntactic sugar,however,since the result set differs from the result set of the version with the explicit predicate. Specifically,any columns mentioned in the USING list will appear only once,with an unqualified name,rather than once for each table in the join.

这是一个较少的专栏.你永远不会使用SELECT *,所以重点是没有意义……

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...