#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
, каждая из которых имеет количество атрибутов, большее единицы.
- Каково ваше предложение по сохранению этих значений?
- В одном источнике было предложено, чтобы для каждой таблицы для хранения использовалась таблица с именем
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. Спасибо за ответ. Но мне нужно какое-то лучшее решение.