Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Динамическое добавление полей и формирование JSON (https://javascript.ru/forum/dom-window/68690-dinamicheskoe-dobavlenie-polejj-i-formirovanie-json.html)

Scantraxx 04.05.2017 14:50

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

laimas 04.05.2017 15:11

Давайте возьмем в качестве товара платье. Этот товар может иметь такую характеристику как цвет. Выгодно ли помещать ее в отдельную таблице? Нет. При этом платье может иметь и сложный цвет, который не указать. Это означает, что данная характеристика необязательна к заполнению по сравнению к примеру характеристики "цена", которая обязательна. Следовательно поле в основной таблице содержащее значение этой характеристики по умолчанию принимает как "нет"/NULL.

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

Но если к примеру пусть описывать цвет отдельной таблицей, то выгоднее такие описания иметь как готовый набор: красный, черный, зеленый... в таблице описывающей различные значения характеристик. При этом таблица связей их с товаром, это связи идентификаторов товара с идентификаторами характеристик и их значений. Форма при этом имеет списки из которых можно выбрать значение той или иной характеристики, если она присуща товару. Добавление же новой характеристики допускается только тогда, когда ее описания нет в базе.

Scantraxx 04.05.2017 15:18

laimas,
просто и понятно! Спасибо, буду "рисовать" новые таблицы)

laimas 04.05.2017 15:18

Цитата:

Сообщение от Scantraxx
И если магазин решил торговать каким-то новым товаром, то это нужно лезть в архитектуру бд и добавлять новую таблицу

Для этого существуют понятия категорий, и ясно, что товары "Продукты" не могут иметь такую же структуру таблицы как товары "Автомобили". Не структура БД изменяется, а в базу добавляется структура таблиц описывающих характеристики добавленной категории товаров присущих только им.

Scantraxx 04.05.2017 15:30

Зачем вообще тогда нужна таблица категорий, если у нас для каждой категории есть соответствующая таблица?

laimas 04.05.2017 15:40

Цитата:

Сообщение от Scantraxx
Зачем вообще тогда нужна таблица категорий, если у нас для каждой категории есть соответствующая таблица?

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

В интернет магазине витриной служит главное меню, в котором можно выбрать витрину конкретных товаров. А кто должен описывать витрину всех товаров? Правильно, таблица описывающая категории товаров которыми торгует магазин. И учтите, в реальном магазине вы получаете всю информацию визуально, сами. В интернет же магазине читать ее. И всегда помните о SEO.

Scantraxx 04.05.2017 15:49

laimas,
спасибо вам в очередной раз.


Часовой пояс GMT +3, время: 19:35.