Лучший способ отследить новые поля ASP.NET Core MVC - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть база данных, которая отслеживает поставщиков и рабочие места.Для каждой работы в моей базе данных есть места для четырех поставщиков комплектов и всей их информации.Каков наилучший способ учета пятого поставщика?Должен ли я отредактировать свою базу данных и добавить несколько дополнительных полей для потенциальных поставщиков?Или я бы создал поле, которое живет только в классе C # или что-то подобное?Мое приложение - это проект базы данных, если это имеет значение.

edit Использование Entity Framework Core и PostgreSQL

1 Ответ

0 голосов
/ 04 февраля 2019

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

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

Я опишу «правильный» способ сделать это.Основное преимущество такой работы - не дублирование данных (если я правильно вас понимаю, то если один поставщик работает над несколькими заданиями, то у вас дублируются данные поставщика по каждому заданию).

Когда у вас есть двасущности типа «поставщики» и «задания», которые связаны друг с другом, тогда у вас обычно будут таблицы для каждой (таблица поставщиков и таблица заданий).

Если каждое задание может обрабатываться несколькими поставщиками,и каждый поставщик может работать над несколькими заданиями, тогда это называется отношением «многие ко многим», и обычно создается отдельная таблица с двумя столбцами (VendorId и JobId) для определения отношения.

Если выиспользуя Entity Framework, EF может обрабатывать отношения «многие ко многим», используя коллекцию: у каждого поставщика будет свойство Jobs, представляющее собой набор заданий, в которых участвует поставщик. Аналогично, каждое задание будет иметь коллекцию Vendors.Вам на самом деле не нужно видеть таблицу сопоставления в вашем коде.

Более подробная информация о том, как обрабатывать отношения в SQL, здесь .

Как определяются отношения ииспользуемый в Entity Framework обсуждается здесь (это специфично для EF6, но принципы в EF Core те же).

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