Как сохранить детали оценки в базе данных с несколькими элементами и значениями - PullRequest
0 голосов
/ 05 августа 2020

Я рассчитываю и создаю оценку для системы управления контрактами. Оценка включает в себя следующие данные

Пример:

product_name          unit_price     Quantity     cost(unit_price*Quantity)   
Sand                    16              10           160
Cement                  12              10           120
Pipes                   10              10           100

-------------------------------------------------------------------------
Total cost                                   380
-------------------------------------------------------------------------

Здесь. Если я возьму отдельную таблицу для хранения всех деталей каждой оценки в таблице, столбцы будут выглядеть следующим образом: EstimationID | sand_unit_price | sand_Quantity | Sand_cost | Цементная_единица | Цемент_Количество | цементная стоимость | pipe_unt_price | pipe_quantity | pipe_cost | Total_cost

Я знаю, что это невозможно, потому что, если мы добавим больше материалов, будут сотни столбцов. Поэтому я попытался создать диаграмму ER и придумал следующие объекты и атрибуты:

Материалы: MID, имя_материала, unit_price

Оценка: EID, total_cost, date

Клиент: CID (и другие атрибуты, связанные с клиентом)

Я принял их отношения как следующие:

  1. Оценка и материалы: MN (Поскольку оценка может включать много материалов, а материал может быть во многих оценках)

2. Оценка и заказчик: 1 N (Поскольку у оценки может быть только один покупатель, но у клиента может быть несколько оценок)

Итак, таблицы выводятся следующим образом: Таблица: EID оценки | CID | total_cost | дата |

Таблица: Материалы MID | имя_материала | unit_price

Таблица: rating_materials EID | MID | Кол-во | Сумма |

* Эта таблица выше - та, которую я получил, сопоставив отношения "многие ко многим" между оценкой и материалами. Могу ли я добавить еще 2 дополнительных столбца, например «Кол-во» и «Сумма», как указано выше? Если это невозможно, где следует хранить эти данные?

Таблица: EID_customer | CID |

Могу ли я реализовать базу данных в соответствии с этими таблицами? Я должен иметь возможность обновить, удалить и выполнить поиск по определенной оценке. Если я сохранил данные оценки в нескольких таблицах, подобных этой, а не в одной, смогу ли я это сделать? Потому что мне нужен менеджер по контрактам, чтобы видеть все детали оценки, такие как отчет в единый интерфейс

...