Что вы предпочитаете?Вы предпочитаете многословное наименование, когда дело доходит до столбцов базы данных?
Предположим, у нас есть общая таблица продуктов, которая имеет идентификатор, имя и ссылку на внешний ключ для категории. Вы бы предпочли назвать свою таблицу, как:
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
за имя?). Очевидно, что по существующему проекту вы должны следовать уже принятым конвенциям, но как насчет новой разработки?
Каковы ваши предпочтения?
См. Вопрос http://stackoverflow.com/questions/208580/naming-of-id-columns-in-database-tables/208631 – kemiller2002
Нет, это было только о столбце id. Разный вопрос. – dkretz
Я только что прочитал хорошее сообщение в блоге об этом здесь: [http://petereisentraut.blogspot.com/2008/06/schema-design-and-id-fields.html](http://petereisentraut.blogspot.com/ 2008/06/schema-design-and-id-fields.html) – Elijah