Разработка базы данных под ключ - PullRequest
0 голосов
/ 26 июля 2010

У меня есть несколько вопросов относительно дизайна базы данных для простой CMS.

Каждая страница в таблице "PAGES" может быть "AssignedTo" и "LockedBy" конкретным пользователем.Для управления пользователями я использую специфичную для SQL таблицу «aspnet_Users», каждый пользователь идентифицируется с помощью столбца GUI uniqueIdentifier.

Если страница «Разблокирована» и может быть отредактирована пользователями, ее значение в таблице «Страницы»будет NULL, тот же механизм для "AssignedTo".

Вот мой сценарий, когда я создаю таблицу "PAGES":

LockedBy uniqueidentifier NULL FOREIGN KEY REFERENCES aspnet_users(UserId),
AssignedTo uniqueidentifier NULL FOREIGN KEY REFERENCES aspnet_users(UserId)

Мой вопрос: этот дизайн будет генерировать много значений NULL в "LockedBy«Поскольку страницы будут заблокированы только в момент редактирования, поскольку я слышал, что многие значения NULL не очень полезны при проектировании базы данных, я хотел бы знать, насколько хорош мой дизайн, или вы могли бы предложитьлучший путь.Спасибо, ребята

1 Ответ

1 голос
/ 26 июля 2010

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

Вы можете разделить это на две другие таблицы: PageLocks и PageAssignedTo

PageLocks: PageID, UserID <- уникальный ключ </p>

PageAssignedTo: PageID, UserID <- уникальный ключ </p>

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