Структура базы данных: клиенты покупают разные предметы - PullRequest
0 голосов
/ 04 ноября 2011

У меня есть таблица, в которой хранится вся информация об элементе и его идентификатор.Теперь я хочу создать таблицу со всеми покупателями и записать, какой товар купили.Каково лучшее решение для этого?Я думаю, это не очень эффективно, если хранить его так:

|customer_id | username | password | boughtproducts   |
| 1          | herbert  |123       |productid1,pid2...|

Как бы вы это сделали?

Ответы [ 4 ]

3 голосов
/ 04 ноября 2011

Более простой способ справиться с этой ситуацией заключается в следующем:

Таблица Customer: customer_id |имя пользователя |пароль

Таблица товаров: product_id |productName |...

Таблица продаж: sale_id |customer_id |product_id |Время продажи

Таким образом, используя таблицу «Продажи», вы будете хранить все продажи каждого покупателя и продукта.Customer_id в «Sales» - это внешний ключ из таблицы «Customer», а product_id в «Sales» - это внешний ключ из таблицы «Product».

Я надеюсь, что это ответ на ваш вопрос

1 голос
/ 04 ноября 2011

Я бы на самом деле пошел с еще 2 таблицами. Один для Клиента, а затем второй для Продуктов, которые они купили Как:

Клиент

CustomerID | Имя пользователя | Пароль

Покупки:

CustomerID | ProductID | Дата | и т.д.

1 голос
/ 04 ноября 2011

В сети имеется множество примеров схем такого типа.

Но в итоге ваша БД может принять форму ...

Customer таблица: у одного клиента может быть много ..

Order таблица: в одном заказе может быть много ..

OrderLine таблица: одна строка заказа будет связана с одной ...

Product таблица. (И один Product будет связан с мая OrderLine с)

То есть OrderLine будет содержать ProductID и Quantity. Затем вы можете JOIN таблицы и сделать полный Order.

1 голос
/ 04 ноября 2011
have one Customers Table // store details of the customers

have once Products Table // store details of the products

have one Customers_products Table

|primary_key|customer_id | product_id |
|           | 1          | 1          |
|           | 1          | 2          |

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

Первичный ключ может иметь значение AutoIncremented или composite key обоих внешнихключи.

...