2016-04-12 3 views
0

У меня есть чек, где кто-то может купить подарки для одного или нескольких лиц в том же порядке. Это означает один заказ, на самом деле можно отправить 1,2,3 или более человек под одним зонтиком заказа. Я пытаюсь найти способ представить это в базе данных. Ниже я думаю. В таблице orders хранится основная информация о заказе, order_groups - это то, что я могу связать предметы и доставку одному человеку для заказа, order_items - это продукты, order_shipping сам объясняет.MySql - как хранить заказы, которые могут быть отправлены нескольким лицам

orders 
id, amount, customer_id 

order_groups 
id, order_id 

order_items 
id, item_id, unit_price, quantity, total_price, order_group_id 

order_shipping 
id, name, address1, address2, city, state, zip, order_group_id 

Я считаю, что все в порядке, но у меня есть чувство, что порядок_групп может быть не таким. Я спрашиваю, подходит ли это для этого, или если есть лучшее решение ситуации?

ответ

1

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

Так сказал, вы должны сохранить ссылку на группу в самом порядке, а не в таблице ссылок:

groups 
id, [group-related info] 

orders 
id, group_id, amount, customer_id 
+0

Я немного смущен тем, что вы имеете в виду. Означает ли [информация, связанная с группой] информацию о хранении в таблице групп, или сохраняйте элементы и таблицы доставки, как и с group_id? – Naterade

+0

@Naterade: вы должны хранить данные о группе (например, информацию о платежах, информацию о клиентах и ​​т. Д.) В группах и данные, связанные с заказом (адреса доставки, получение информации о клиентах и ​​т. Д.) В заказах. Элементы заказа должны быть привязаны к заказам, а не к группам. – Quassnoi

+0

А, я вижу! Я думаю, что это гораздо лучшее решение и более логичное с точки зрения представления данных. Спасибо! ~ – Naterade

0

Вы должны установить возможные один ко многие.

order_addresses (table) 
order_id, address_id 

order_shipping (table) 
address_id, name, address1, address2, city, state, zip, order_group_id 

Вам также необходимо следить за которые деталь погружена какой адрес и вы должны будете использовать подобную стратегию.

Смежные вопросы