Показать сообщение отдельно
  #14 (permalink)  
Старый 20.03.2015, 08:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Как понять расшифровка? Есть некая сущность в базе, назовем ее А, которая может иметь различные свойства описанные в таблице T1. Ей же может принадлежать некий множественный набор других свойств, либо ваши же услуги, количество которых переменно. В свою очередь эти свойства/услуги описывает другая таблица Т2.

Вопрос - каким образом сохранить в базе набор свойств из таблицы Т2 выбранных для сущности А? Вы же не станете для этого добавлять в таблицу Т1 новые поля при выборе услуг или удалять их при удалении услуг. Для того чтобы сохранить такой выбор, нужна третья таблица Т3, которая будут отражать такой набор, и которая будет связана с таблицами Т1 и Т2.

Таблица Т3 будет содержать уникальный идентификатор сущности А из таблицы Т1, по которому связываются таблицы Т1 и Т3, и уникальный идентификатор свойства/услуги из таблицы Т2, по которому связываются таблицы Т2 и Т3. В свою очередь эта пара полей таблицы Т3 создает уникальный индекс каждой записи таблицы Т3. Таблица Т3 являющаяся внешней таблицей связи между Т1 и Т2 как раз и содержит множественный набор свойств/услуг принадлежащих сущности А.

Этого и достаточно, если необходимо только описание набора. Но если свойство/услуга таблицы Т2 имеет какие либо количественные характеристики, как то цену за единицу, и такой услуги можно выбрать N-количество, то кроме идентификаторов таблица Т3 должна хранить и количество каждой выбранной услуги. Хранить общую же сумму за эти услуги и их общее количество нет необходимости, так как это всегда можно получить связанными запросами к таблицам Т1, Т2, Т3.

Смекаете, что для того чтобы ответить на ваш вопрос необходимо знать организацию ваших данных, то есть структуру базы - таблицы, связи? Рассказывая вам о том как должны именоваться поля формы и почему так, и предполагалось, что вы храните именно набор множества полученный из формы. Но если вы задаете этот вопрос, то получается что нет, значит организация вашей базы никуда не годится.

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

Последний раз редактировалось laimas, 20.03.2015 в 09:51.
Ответить с цитированием