Вот один из способов, которым вы можете создать это.
Я не эксперт по базам данных.Я разработал базы данных для небольших приложений с несколькими таблицами.Я пытаюсь (с акцентом на попытку, иногда мне не удается) , чтобы быть более универсальным, насколько это возможно, поэтому я не ограничен углом при изменении области действия.
На вашей диаграмме я заметил несколько вещей, например, ваше предположение о продаже только DVD.Что произойдет, если владелец магазина начнет продавать диски Blu-ray или портативные игровые приставки.Мое предложение было бы сохранить общий дизайн.Поэтому я перефразировал таблицу DVD в Item, чтобы таблица могла вместить что угодно.
Я также добавил таблицу типов элементов, чтобы вы могли определить, к какому типу элементов это относятся.
Ваши транзакции следует рассматривать как однупорядок.Клиент может разместить один заказ, который может содержать набор предметов, которые он хотел бы приобрести, а также несколько предметов, которые он хотел бы арендовать.Вы бы не попросили их дважды стереть карту, не так ли?Вместо этого создайте заказ для клиента в заголовке заказа и разместите его позиции в таблице сведений о заказе.В таблице деталей заказа также указывается количество, например, сколько товаров клиент хотел бы купить / арендовать.Когда они арендуют, поле даты возврата будет нулевым для начала.Когда они возвращают товар, вы можете вернуться назад и заполнить дату, выполнив поиск идентификатора товара и комбинации идентификаторов клиентов.
Вы можете создать это в n
количество способов, но с ограниченной информацией, это то, что я мог придумать.
Я не утверждаю, что это лучший дизайн.Я надеюсь, что это даст вам некоторую идею взять его отсюда и настроить в соответствии с вашими потребностями ..
