я вижу, что не во всех ваших таблицах есть PK, на самом деле я вижу только, что в пользовательской таблице есть один, а раскадровка использует имя и владельца в качестве PK?
Я предпочитаю использовать идентификатор длявсе мои таблицы, кроме промежуточных таблиц, используемых для отношения NxN, как вы делали для авторов и рецензентов.Ты сделал то же самое, но назвал это GID.Я бы использовал их в качестве ПК (и также автоматически).
Не беспокойтесь, если объект имеет тот же GID, что и другой объект в другой таблице, потому что в вашей таблице комментариев у вас есть ObjType
, который определяет таблицу, связанную с объектом.Так что все будет в порядке, если GID пользователя такой же, как GID StoryBoard.
Я не привык к диаграммам sql-сервера, но кажется, что отношения не очень хорошо определены: я вижу этого пользователяи раскадровка связаны в 1xN, но похоже, что раскадровка и слайды связаны в отношении 1x1, когда оно также должно быть 1xN
Раскадровка имеет владельца и разных авторов, это означает, что если ясоздать раскадровку, раскадровка будет иметь мой идентификатор в OwnersUserId, а мой идентификатор также будет храниться в таблице авторов?если да, то кажется ненужнымИли .. ну .. это зависит от концепции вашей модели.Я вижу два варианта:
a StoryBoard имеет ОДНОГО автора и ОДНОГО ИЛИ МНОГО соавторов
(не меняйте свою модель, только переименуйте таблицу авторов в соавторов или что-то более точное)
a StoryBoard имеет ОДНОГО ИЛИ БОЛЕЕ авторов, и один из них является владельцем
(удалите отношение 1xN между пользователями и раскадровкой и добавьте столбец type
втаблица авторов)
Последнее замечание:
Пользователь должен иметь возможность просматривать и загружать только созданные им раскадровки.
это не изменит модель данных .. =) но если только авторы смогут просматривать раскадровки, то кто их будет просматривать?
Мои наблюдения просто поверхностны, я считаю, что модель хорошо приспособлена кпроблема
удачи