Я делаю систему онлайн-бронирования мест для вечеринок, и мой клиент хочет, чтобы его пользователям были доступны определенные «пакеты». Эти пакеты будут иметь «подпараметры», и я не уверен, как их хранить. Например, если один пакет называется «Воздушные шары», мне нужно иметь возможность хранить под ним различные параметры, такие как «красные воздушные шары», «зеленые воздушные шары» и т. д., или «Пицца» > большая, средняя и маленькая.
Я, конечно, использую базу данных, и в настоящее время она настроена с таблицей для пакетов и таблицей для заказов. В таблице заказов есть столбец, содержащий список идентификаторов пакетов, который ссылается на записи, хранящиеся в таблице «пакеты».
Прямо сейчас я думаю, что лучший способ сделать это — добавить еще один столбец в таблицу назначений, который будет содержать подпараметры, в форме:
packageid:optionid;package2id:option2id
А также еще один столбец в таблице пакетов, который имеет параметры в виде:
1:red,2:blue,3:green //for options with no add'l price
1:large[$20],2:medium[$15],3:small[$10] //for options that change the price
Это, я полагаю, сработает, но я чувствую, что должен быть лучший способ сделать это. Если у кого-то есть идеи или кто-то уже делал что-то подобное, буду признателен за помощь.
bookings
. Это позволит вам хранить произвольное количество данных, не беспокоясь о нехватке места при увеличении количества пакетов. - person andrewsi   schedule 23.06.2012