Правильный способ написать «ID» в столбцах в SQL - PullRequest
5 голосов
/ 01 мая 2010

Мой первый вопрос здесь. Мне очень нравится сайт:)

У меня есть таблица SQL под названием Product. В этой таблице я хочу сделать столбец для идентификатора продукта, и я действительно хочу знать правильный способ записи идентификатора, потому что я делаю много столбцов идентификаторов в долгосрочной перспективе.

Так ли это: "Я БЫ" или же "Id"?

А также внешний ключ в другой таблице, который называется ProductID или ProductId?

Ответы [ 7 ]

7 голосов
/ 01 мая 2010

Использование заглавных букв в SQL во многом зависит от стиля кодирования. Последовательность является наиболее важным аспектом. Тем не менее, «ProductId» выглядит для меня немного как «Productld» (это строчный-L перед «d»), поэтому я бы предпочел «ProductID» (или «productID» или «product_id»). 1001 *

Что касается префикса имен столбцов с именами таблиц, это слишком много в моей книге. Products.id достаточно; Products.productID является избыточным.

6 голосов
/ 01 мая 2010

Не существует «правильного» способа сделать это. Просто будь последовательным. Мое личное предпочтение - использовать ProductId в обеих таблицах. Если вы используете «ID» для всех своих таблиц, а затем присоединяетесь к другой таблице, вы, скорее всего, в любом случае будете их псевдонимом, чтобы различать два поля ID.

3 голосов
/ 01 мая 2010

Лично я бы указывал ProductID, ProductName и т. Д. В таблице Product, а также для FK, чтобы столбцы ID и Name не были повсюду

Просто будьте последовательны

2 голосов
/ 01 мая 2010

Как вы предпочитаете.

Большинство (многие? Некоторые? Те, которые я знаю?), По-видимому, приняли строчные "id" для первичного ключа и "primarykeytablename_id" для внешнего ключа, по крайней мере, для соглашения об именовании по умолчанию. Мне не нравится это соглашение, так как мне нравится, чтобы ключ имел одинаковое имя с обеих сторон отношений.

Я предпочитаю EntityNameID в обоих местах (например, ProductID, OrderID, OrderDtlID и т. Д.).

1 голос
/ 01 мая 2010

Я, вероятно, никогда не должен был брать этот класс психологии, но, поскольку есть слово "id", я всегда пишу аббревиатуру для идентификатора, поэтому я использую "ID". Я экспериментировал с использованием только ID и ProductID для имени первичного ключа. Поскольку я использую LINQ и просто сопоставляю класс в конструкторе, я принял наименование столбцов так, как я хочу, чтобы они были в моем коде. Поскольку я предпочел бы иметь product.ID, чем product.ProductID, я использую более короткое имя. Для внешних ключей я использую формат таблицы / столбца (без разделителя), поэтому внешний ключ станет ProductID. Это не проблема для меня в моем коде, потому что я почти всегда использую сопоставленную сущность, например, cart.Product, а не сам ключ, cart.ProductID.

РЕДАКТИРОВАТЬ : Примечание. Я предполагаю, что цель .NET Framework, таким образом, используя (в основном), соглашения об именах из .NET. Если бы я занимался разработкой на Rails, они, вероятно, были бы строчными, и я бы использовал подчеркивания в качестве разделителей.

0 голосов
/ 01 мая 2010

Я склонен к тому, чтобы не иметь «id» или «ID».

Я всегда иду на стол - productName

pkProductName Наименование товара fkProductCode

и таблица - ProductCode pkProductCode ProductCode

так что даже когда вы используете SQL или в коде, отношения являются явными и значимыми.

0 голосов
/ 01 мая 2010

Ну, «Id» - это сокращение от «Identification», поэтому «должно быть» «Id».

С другой стороны, оно произносится как «I-D», а не «id», поэтому «ID» также приемлемо.

Я бы предпочел «ProductId», а не просто «Id» для первичного ключа таблицы, чтобы обе стороны отношения внешнего ключа совпадали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...