2009-10-22 4 views

ответ

5

Я думаю, что люди используют это, чтобы воспроизвести SEQUENCE Oracle. В основном они хотят единый уникальный идентификатор для любого объекта, которые они создают в своей системе, поэтому у них есть что-то вроде этого:

CREATE PROCEDURE dbo.GenerateIdentifier 
    @Identifier INT OUTPUT 
AS 
BEGIN 
    SET NOCOUNT ON; 

    INSERT dbo.SingleColumnTable DEFAULT VALUES; 

    SET @Identifier = SCOPE_IDENTITY(); 
END 
GO 

Теперь, когда они хотят, чтобы добавить новый контакт, или клиент, или заказ, и т.д., они первые вызовите эту процедуру и получите новый идентификатор. Тогда только один объект в системе будет иметь идентификатор = 1 или 2 и т. Д.

+0

Thanks Aaron .. это один возможный случай ... – RameshVel

1

Может быть для утилиты Numbers таблиц в SQL Server 2005. < Проверить this blog post об этом.

В любом случае таблица с идентификационным столбцом используется, как правило, для преодоления некоторых препятствий SQL Server, которые сложнее сделать иначе или замедлить использование других (т. Е. Встроенных) методов.

2

Хмм таблица с одним столбцом, который является личностью и не более того - для этого не может быть много применений.

Один из них, о котором я могу подумать: если вам нужны несколько таблиц, чтобы иметь значения идентичности, но они не хотели, чтобы эти значения столкнулись друг с другом, тогда вы могли бы использовать централизованную таблицу, в которой был только один столбец (идентификатор), и это было используется для создания чисел.

2

При переходе с баз данных Oracle вам нужен способ эмуляции последовательностей Oracle ... Таблицы с одиночными столбцами идентификации - это путь.

1

Другое использование также может быть логическим, поскольку наличие ключа в таблице столбцов с одним столбцом указывает на истинную оценку предикатов для некоторой бизнес-логики.

Значение, которое значение pkey в этой специальной таблице может быть внешним ключом к другой таблице. Хотя я не уверен, что он покупает что-либо над битом в этой другой таблице.

Но это определенно хорошая практика как таблица с таблицами или цифрами.

2

Эта таблица может служить уникальным генератором идентификаторов предприятия, в котором все приложения (включая устаревшие) будут полагаться как система запись.

4

Если вы нормализуете прошлое 3-го нормального, вы можете устранить множественные отношения многих из многих в одну таблицу. Это трудно объяснить без примера схемы, но я дам ему выстрел ...

Чтобы устранить множественное множество ко многим связям с одной таблицей, потребуется использование суррогатной ПК, которая является общей для нескольких таблиц. (Это дает вам одно-многое число, а не одно для каждой таблицы.) В крайнем случае вы получаете одну таблицу столбцов, которая ничего не дает, кроме FK, другим таблицам, которые они могут использовать как чистый FK или PK. Подумайте об этом как о нескольких таблицах, наследующих отношения многих и многих из одного родителя столбца, но ничего больше. Самое приятное в этом состоит в том, что одна таблица столбцов выпадает из любых актуальных запросов, так как вы можете использовать (унаследованный) FK для присоединения к много-многим таблицам, к которым он подключается.

Смежные вопросы