У меня есть представление о структуре в SQL, и я не понимаю, хорошая она или плохая, помогите мне.
В моем приложении много таблиц с похожими столбцами (creatorUserId, creationDate, type, ...)и все они (таблицы) имеют отношение n к n с другими и самим собой.
Кажется, что все таблицы получены из базовой таблицы, которая включает в себя аналогичные столбцы и один столбец идентификаторов.Я назвал базовую таблицу Content
и добавил таблицу с 2 столбцами (ContentParent_Id, ContentRelated_Id) для отношений «Содержимое».
Столбец идентификатора в таблице содержимого является идентификатором, а все остальные таблицы имеют один к одномусвязь по таблице содержимого.
Также добавлено несколько таблиц для управления общими свойствами всех таблиц, такими как порядок отображения, состояние удаления, статус проверки, количество посещений и т. д.
Вопросы:
Должен ли я добавить отношение «один к одному» и таблицу и ContentTable
, и не является ли это перегрузкой для SQL?
Когда я выполняю запрос, в котором выбрано Чтение, связанное с человеком, это происходит медленнее, чем при добавлении отношения n2n с человеком и чтением.Почему?
При выполнении запроса с Entity Framework с этим кодом и просмотре результата в SQL Server Profiler, эта таблица показывает множество столбцов, которые не используются.Почему?
DB.Set<T>()
.Include(q => q.Content)
.Include(q => q.Content.ContentOrder)
.Include(q => q.Content.ContentDelete)
.Where(q => q.Content.ContentDelete.isDelete != 1)
Пожалуйста, поделитесь любыми предложениями, которые повысят производительность этой структуры
Спасибо.