У меня есть быстрый вопрос - есть ли наилучшая практика в дизайне SQL Table для хранения данных «или/или»?Таблицы SQL - шаблон для данных или данных
У меня проблема: мне нужно хранить данные шаблона (определение структуры папок) в таблице SQL. Любая папка может иметь статическое имя (например, «Электронная почта») или может быть динамически сгенерирована для каждого экземпляра в зависимости от связанных с ней объектов (например, название компании).
При создании экземпляра бизнес-объекта данные шаблона будут использоваться для создания фактической структуры папок.
Я имею в виду хранения данных, как это:
CREATE TABLE folder ( ID INT IDENTITY PRIMARY KEY, FolderName NVARCHAR(50), IsDynamic BIT NOT NULL DEFAULT 0, DynamicFieldID INT FOREIGN KEY REFERENCES dynamicField, ParentID INT FOREIGN KEY REFERENCES folder )
Так что, если IsDynamic поле установлено верно, я знаю, что там будет правило (определяется по внешнему ключу), но если не я будет использовать значение, сохраненное в имени папки.
Однако это кажется немного грязным для меня - есть ли «лучшая практика» для такого сценария?
Привет Patrick - спасибо за это. Я рассматривал это, но был подвешен на решение, было ли это лучше или хуже, чем мое дело. Каково ваше мнение о том, почему это лучше (или что вы считаете «за» и «против»)? – Chris
Если у вас было более двух типов папок или более двух столбцов, этот подход может оказаться более чистым, чем попытка сохранить все в одной таблице. Однако, поскольку он стоит, я думаю, что предложение Криса COALESE более практично.Я бы принял его ответ. :-) –