#mysql
#mysql
Вопрос:
Это то, что я действительно должен знать, но я довольно давно не занимался какой-либо работой с БД и просто хотел получить некоторые разъяснения по структуре простой базы данных mysql.
Основная предпосылка — это корзина покупок, поэтому у нас есть каталог, клиент и заказы.На данный момент клиент не собирается регистрироваться, он будет вводить данные каждый раз.
Моя главная проблема заключается в том, как структурировать таблицу customer и order, поскольку, очевидно, было бы неплохо иметь их отдельно.
Является ли лучшим методом просто иметь таблицу customer с fkey для таблицы order, а таблица order просто ссылается на товар в каталоге с другим fkey?
Любые разъяснения приветствуются.
Ответ №1:
У вас есть 4 таблицы на самом базовом уровне: users
, basket
, items
, basket_items
.
Заказы будут работать точно так же, как basket
и basket_items
, поэтому давайте пока не будем усложнять.
Запись в basket_items
— это просто basket_id
и item_id
— это таблица ссылок basket
, используемая для разрешения такого рода отношений «многие ко многим» (у каждого items
их много item
, каждый baskets
может быть во многих, во многих).
Таблица basket
or orders
, как вы говорите, просто имеет внешний ключ к customers
таблице — каждый заказ выполняется одним и только одним клиентом.
Ответ №2:
Возможно, у вас может быть orders
таблица, в которой при новом сеансе пользователя (или последующем входе в систему) будет создан новый порядок. Он будет содержать customer_id
, количество элементов, item_id
(fkey) и общее количество (вычисляется динамически, если вы хотите)
Комментарии:
1. Проблема, с которой я борюсь, заключается в том, что в корзине может быть более одного элемента, и я не хочу разделять их запятой.
2.
orders
Таблица не может содержать идентификаторы всех элементов. Вам нужна отдельнаяorder_items
таблица, чтобы связать их.3. конечно, это неудобно, но он будет содержать item_id, связанный с таблицей item и количеством заказа.