Простой вопрос о структуре базы данных MySQL

#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 и количеством заказа.