Я застрял, пытаясь смоделировать отношения многие ко многим. Вот типичный пример моей проблемы с использованием модели электронной коммерции:
+------------+-------------+----------+------------+
| date | customer_id | order_id | address_id |
+------------+-------------+----------+------------+
| 12/1/2019 | 1 | 1 | 1 |
| 12/15/2019 | 2 | 1 | 1 |
| 12/15/2019 | 2 | 2 | 2 |
| 1/1/2020 | 2 | 3 | 1 |
| 1/1/2020 | 1 | 2 | 3 |
| 1/1/2020 | 1 | 3 | 2 |
| 1/2/2020 | 1 | 4 | 1 |
+------------+-------------+----------+------------+
- Клиент может разместить много заказов.
- Клиент может отправлять по нескольким адресам.
- Адреса могут иметь несколько клиентов.
Как бы я смоделировал "домашний" соединительный / мостовой стол? В моих данных выше, customer_id 1 и 2 могут быть семьей или бизнес-объектом. Что если бы я хотел узнать в конкретную дату, сколько заказов разместило это домохозяйство / организация, сколько клиентов представляло это домохозяйство и сколько мест они отправили?
Я думаю, что это начало того, как я построить эту модель, но застрял на написании мостового запроса.
orders addresses
+-------------+----------+ +-------------+------------+
| customer_id | order_id | | customer_id | address_id |
+-------------+----------+ +-------------+------------+
| 1 | 1 | | 1 | 1 |
| 1 | 2 | | 1 | 2 |
| 1 | 3 | | 1 | 3 |
| 1 | 4 | | 2 | 1 |
| 2 | 1 | | 2 | 2 |
| 2 | 2 | +-------------+------------+
| 2 | 3 |
+-------------+----------+