您偏爱哪一个?
假设我们有一个通用的Product表,该表具有ID,名称和对类别的外键引用。您是否希望将表命名为:
CREATE TABLE Products ( ProductID int NOT NULL IDENTITY(1,1) PRIMARY KEY, CategoryID int NOT NULL FOREIGN KEY REFERENCES Categories(CategoryID), ProductName varchar(200) NOT NULL )
为列使用显式命名(例如, 产品 名称, 产品 ID),或类似以下内容的名称:
CREATE TABLE Products ( ID int NOT NULL IDENTITY(1,1) PRIMARY KEY, CategoryID int NOT NULL FOREIGN KEY REFERENCES Categories(ID), Name varchar(200) NOT NULL )
据我所知,.NET世界中的约定很明确-样本倾向于使用第一个示例,而开源和RoR世界则倾向于第二个示例。我个人觉得第一眼乍看之下更容易阅读和理解: select p.ProductID, p.ProductName, c.CategoryName from Categories c inner join Products p on c.CategoryID = p.CategoryID对我来说,比起自然而然地select p.ID AS ProductID, p.Name AS ProductName, c.Name AS CategoryName from Categories c inner join Products p on c.ID = p.CategoryID
select p.ProductID, p.ProductName, c.CategoryName from Categories c inner join Products p on c.CategoryID = p.CategoryID
select p.ID AS ProductID, p.Name AS ProductName, c.Name AS CategoryName from Categories c inner join Products p on c.ID = p.CategoryID
我想,鉴于我提供的基本示例并不重要,但是当您处理大量数据和表时又如何呢?我仍然会发现第一个示例要比第二个示例更好,尽管可能值得探究这两个示例的某些组合(<Table>ID用于ID,但仅Name用于名称?)。显然,在现有项目上,您应该遵循已经建立的约定,但是对于新开发该怎么办?
<Table>ID
Name
您的喜好是什么?
表名已经给出了上下文。无需在列名称前添加前缀。连接表时,请使用table.column语法。