Дизайн базы данных — название для этого соглашения?

#mysql #sql #sql-server #entity-framework

#mysql #sql #sql-сервер #entity-framework

Вопрос:

Я пытаюсь найти хороший способ справиться со следующим сценарием в Entity Framework, но не знаю названия используемого соглашения, поэтому мне трудно находить результаты:

Базовые таблицы

Таблица категорий: идентификатор категории, имя, …, Активный

Таблица веб-страницы: WebpageID, имя, …, Активный

Таблица продукта: ProductID, Name, …, Active

Таблица ссылок: LinkId, имя, …, Активный

Таблица отношений

Таблица связей: ID, CategoryID, childID, ChildTypeID, сортировщик

(Дочерним идентификатором может быть CategoryID, WebpageID, ProductID или LinkId. ChildTypeID определяет, с какой таблицей / типом также связан childID)

Что я должен использовать для поисковых запросов, чтобы найти информацию об этом типе отношений? Есть ли у кого-нибудь ссылки на ресурсы, которые могли бы быть полезны при обработке такого рода вещей в Entity Framework? Я рассматриваю возможность разбиения таблицы взаимосвязей на четыре таблицы, но хотел бы убедиться, что я не создаю для себя больше работы, чем необходимо.

Комментарии:

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

2. HLGEM, отсюда мой комментарий о том, чтобы разбить таблицу связей на четыре таблицы. Плохая структура бросается в глаза наблюдателю… Иногда вам приходится нормализовать, денормализовать и делать некоторые необычные вещи, чтобы соответствовать вашим конкретным потребностям. В этом случае требовалось возвращать разбитый на страницы и отсортированный список всего содержимого категории. Столбец SortOrder не является специфичным для дочернего типа, но относится ко всем типам в категории.

Ответ №1:

В режиме гибернации это называлось бы отображением наследования. Попробуйте поискать похожие термины в документации Entity Framework.