Sync
Новичок
ALTER TABLE в проекте
Чувствую что изменение структур таблиц в процессе использования сайта клиентами (то есть не в процессе разработки, а в процессе работы клиента с данными) есть нехорошо. Но вот как от этого избавиться тоже не могу придумать.
Дело в том, что если взять интернет магазин, например, где у каждой категории товаров своя форма заполнения данных (клиент сам может настраивать эту форму, добавлять/удалять/изменять поля, поля могут быть разными элементами вэб-форм: селекты, инпуты и тд.).
Потом нужно осуществлять поиск по этим полям, группировку... (например, сколько телефонов с мп3 плеером).
Хранить эти данные в виде хеш-таблицы (под этим я подразуемваю таблицу с тремя полями: tovar_id var_name var_value) неплохое решение, но тип var_value у всех будет одинаковым да и запросы придеться писать корявые (насколько я понимаю объединять таблицу саму с собой и не один раз).
Возможно, недостаточно знаком с проектированием БД, поэтому прошу подсказать решение данной проблемы или указать на источник чтобы почитать.
Чувствую что изменение структур таблиц в процессе использования сайта клиентами (то есть не в процессе разработки, а в процессе работы клиента с данными) есть нехорошо. Но вот как от этого избавиться тоже не могу придумать.
Дело в том, что если взять интернет магазин, например, где у каждой категории товаров своя форма заполнения данных (клиент сам может настраивать эту форму, добавлять/удалять/изменять поля, поля могут быть разными элементами вэб-форм: селекты, инпуты и тд.).
Потом нужно осуществлять поиск по этим полям, группировку... (например, сколько телефонов с мп3 плеером).
Хранить эти данные в виде хеш-таблицы (под этим я подразуемваю таблицу с тремя полями: tovar_id var_name var_value) неплохое решение, но тип var_value у всех будет одинаковым да и запросы придеться писать корявые (насколько я понимаю объединять таблицу саму с собой и не один раз).
Возможно, недостаточно знаком с проектированием БД, поэтому прошу подсказать решение данной проблемы или указать на источник чтобы почитать.