你的偏好是哪一个?
假设我们有一个通用的 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
我想鉴于我提供的基本示例,这没什么大不了的,但是当您处理大量数据和表格时呢?我仍然会发现第一个示例比第二个示例更好,尽管可能两者的某种组合可能值得研究(<Table>ID
对于 ID,但只是Name
对于名称?)。显然,在现有项目上,您应该遵循已经建立的约定,但是对于新开发呢?
你的偏好是什么?