Доброго времени суток, господа и дамы!
1. Есть компания с продаваемые продуктами
2. Есть таблица клиентов clients
3. Есть планы начальника на продажу продуктов совсем отличных от поставляемых
Для новых продуктов нужны будут новые параметры (атрибуты) клиентов,а так же, для отчетности, будет возможность просмотра списка продуктов, которыми пользуется клиент.
Как реализовать таблицу clients так, чтобы не пришлось бесконечно добавлять колонки? Или в этом ничего страшного?
Спасибо.
UPD.
Максим Федоров: например, есть таблица products с колонками
----------------------------------
| products |
----------------------------------
| id | prod_name | prod_price |
-----------------------------------
| 1 | Product 1 | 500 |
| 2 | Product 2 | 700 |
| 3 | Product 3 | 1000 |
-----------------------------------
Есть таблица clients
---------------------------------------------
| clients |
---------------------------------------------
| id | attrib1 | attrib2 | attrib3 | attrib4 |
----------------------------------------------
| 1 | testA | testA | testA | testA |
| 2 | testB | testB | testB | testB |
| 3 | testC | testC | testC | testC |
----------------------------------------------
При продаже продукта Product 1, для оформления требуется attrib1 и attrib3 из clients. При продаже продукта Product2, для оформления требуется attrib2 и attrib4 из clients.
При создании нового продукта (пусть будет Product 4), в таблицу clients нужны будет добавить еще пару атрибутов.
Вопрос состоит в том, как организовать эти атрибуты без прямого добавления колонок непосредственно в clients.
P.S. Появилась мысль создать таблицу clients_attrib_for_product, и там вводит данные в виде
------------------------------------------------------
| clients_attrib_for_product |
------------------------------------------------------
| id | prod_id | client_id | att_name | att_value |
-------------------------------------------------------
| 1 | 1 | 2 | attrib1 | testA |
| 2 | 2 | 5 | attrib2 | testB |
| 3 | 3 | 3 | attrib3 | testC |
-------------------------------------------------------
Но не знаю, насколько это правильно.