Автоматическая генерация таблицы строковых значений в ядре EF

#database #post&resql #asp.net-core #entity-framework-core #ef-core-3.1

#База данных #post&resql #asp.net-core #entity-framework-core #ef-core-3.1

Вопрос:

У меня есть таблица с именем Customer , в которой есть несколько столбцов с именами National Code и Name . Она также имеет ряд других функций, называемых Contact Numbers and Recommenders , поскольку число Contact Numbers и Recommenders больше единицы, поэтому для их хранения вам нужна какая-то другая таблица. Также предположим, что у меня есть другие таблицы, подобные Customer , каждая из которых имеет количество атрибутов, большее единицы.

  1. Каково ваше предложение по сохранению этих значений?
  2. В одном источнике было предложено, чтобы для каждой таблицы для хранения использовалась таблица с именем Strin&Value . EF core Есть ли способ реализовать Strin&Value без написания дополнительного кода?

Пример:

    Customer Table:

   CustomerId         Name         NationalCode
   ------------------------------------------------------------------------
    1                 David         xxxx
   ------------------------------------------------------------------------
  
   

   Strin&Value Table:

   Strin&Id         CustomerId         Strin&Name         Value
   ------------------------------------------------------------------------
   10                 1                PhoneNumber        915245
   11                 1                PhoneNumber        985452
   12                 1                PhoneNumber        935446
   13                 1                Recommenders       Mr Jhon
   14                 1                Recommenders       Mr bb
   ------------------------------------------------------------------------
  

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

1. Прежде чем выбрать путь EAV (значение атрибута сущности), проведите исследование, чтобы понять последствия. Это очень гибко — за счет потенциальной сложности и неэффективности.

2. Спасибо за совет. что вы предлагаете гибкого и эффективного?

Ответ №1:

Я думаю, что более интуитивно создать новую таблицу для поля, содержащего более одной записи, затем настроить отношение «один ко многим» между двумя таблицами. Возьмем ваш случай в качестве примера, вы можете разделить таблицу customer на три таблицы, они могут быть связаны с помощью forei&nkey:

1.Таблица клиентов:

 CustomerId        Name         NationalCode
---------------------------------------------
1                 David        xxxx
  

2. Таблица контактов:

 Id        CustomerId         PhoneNumber
---------------------------------------------
1         1                  915245
2         1                  985452
3         1                  935446
  

3. Таблица рекомендаций:

 Id        CustomerId         RecommenderName
---------------------------------------------
1         1                  Mr Jhon
2         1                  Mr bb
  

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

1. Спасибо за ответ. Но мне нужно какое-то лучшее решение.