SQL

База данных в Access, проверить является ли данная связь многие ко многим и объяснить её

Дана База Данных, я правильно же сделал связь многие ко многим между Манга и Продавцы через Продажи?
Плюс, можете подсказать, какую еще можно добавить таблицу, чтобы их было 6, и какую связь сделать?
Нет, неправильно. С большой долей вероятности таблица Продажи не имеет смысла.

Разве заказ может содержать только один вид манги? Если несколько, должна быть связь многие-ко-многим между Мангой и Заказом.

Каким образом в этой схеме ты сможешь связать продавца и покупателя?

Покупатель не может сделать несколько заказов? Если может, то это заказ должен содержать id покупателя (связь один-ко-многим), а не покупатель содержать id заказа.

У тебя несколько магазинов, в каждом из которых свой ассортимент, или один магазин и "продавец" - тот, кто оформил заказ?

Заказ привязан к одному продавцу, или может содержать несколько продавцов, каждый из которых оформляет свою часть заказа? В любом случае, должна быть какая-то связь между Заказом и Продавцом.
Алексей Букарёв
Алексей Букарёв
78 355
Лучший ответ
Рома Вагин Можете тогда подсказать как исправить таблицы и связи между ними?
Рома Вагин Огромное вам спасибо, сейчас буду выполнять по вашей схеме))
Рома Вагин Я не понял, как нужно создать {id_заказа, id_манги, id_продавца} - составной уникальный ключ в Access
Рома Вагин Вот так у меня получилось, я правильно сделал?
Рома Вагин Дополнил, теперь я все правильно сделал? Составной уникальный ключ правильно сделан?
Алексей Букарёв Непонятно, что c id_позиции_заказа. Либо это первичный ключ и тогда остальные id'ы в позиции заказа составляют отдельный уникальный индекс. Либо три id'а составляют первичный ключ и тогда id_позиции_заказа вообще не нужен.

Лично я предпочитаю, чтобы каждая таблицы имела отдельный первичный ключ. Но это дело вкуса.
Таблица "Книги" (Books):
book_id (Primary Key)title (название книги)author (автор)genre (жанр)publication_year (год издания)price (цена)

Таблица "Продажи" (Sales):
sale_id (Primary Key)book_id (Foreign Key, связь с таблицей "Книги")seller_id (Foreign Key, связь с таблицей "Продавцы")buyer_id (Foreign Key, связь с таблицей "Покупатели")sale_date (дата продажи)quantity (количество проданных книг)total_price (общая стоимость продажи)

Таблица "Заказы" (Orders):
order_id (Primary Key)book_id (Foreign Key, связь с таблицей "Книги")seller_id (Foreign Key, связь с таблицей "Продавцы")buyer_id (Foreign Key, связь с таблицей "Покупатели")order_date (дата заказа)quantity (количество заказанных книг)order_status (статус заказа, например, "в обработке", "выполнен")

Таблица "Продавцы" (Sellers):
seller_id (Primary Key)name (имя продавца)email (электронная почта)phone (телефон)

Таблица "Покупатели" (Buyers):
buyer_id (Primary Key)name (имя покупателя)email (электронная почта)phone (телефон)

Связи между таблицами:
Одна книга может быть продана в нескольких продажах (one-to-many, таблица "Книги" со связью к "Продажи").Одна продажа может включать несколько книг (one-to-many, таблица "Продажи" к "Книги").Один продавец может иметь несколько продаж (one-to-many, таблица "Продавцы" к "Продажи").Один покупатель может иметь несколько заказов и продаж (one-to-many, таблица "Покупатели" к "Заказы" и "Продажи").Один заказ может включать несколько книг (one-to-many, таблица "Заказы" к "Книги").




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

Таблица "Авторы" (Authors):
author_id (Primary Key)author_name (имя автора)author_bio (биография автора)
Связь: Одна книга может иметь одного или нескольких авторов (many-to-many,
таблица "Книги" к "Авторы").

Таблица "Жанры" (Genres):
genre_id (Primary Key)genre_name (название жанра)
Связь: Одна книга может иметь один или несколько жанров (many-to-many, таблица "Книги" к "Жанры").

Таблица "Статусы заказов" (OrderStatuses):
status_id (Primary Key)status_name (название статуса заказа)
Связь: Один статус заказа может быть присвоен нескольким заказам (one-to-many, таблица "Статусы заказов" к "Заказы").

Таблица "Статусы продаж" (SaleStatuses):
status_id (Primary Key)status_name (название статуса продажи)
Связь: Один статус продажи может быть присвоен нескольким продажам (one-to-many, таблица "Статусы продаж" к "Продажи").



⠀⠀⠀⠀⠀⠀⠀OᑭEᑎᗩI.ᑕOᗰ⠀ᗩᑎᔕᗯEᖇIᑎG⠀ᔕEᖇᐯIᑕE
Рома Вагин Это Chat GPT 4, который принимает изображения?