Справка по разработке схемы базы данных - Mysql

0

Хорошо нужна помощь,

У меня есть система, которую я создаю, которая позволит пользователям приобретать кредиты сайтов и зарабатывать их, а с помощью этих кредитов заказывать продукты и получать доступ к функциям, которые могут быть проданы. Моя проблема заключается в создании таблиц заказов и транзакций. У меня есть две отдельные таблицы заказов для сайтов (sitecredit_orders) и одна для заказов на продукт (product_orders), а затем 1 таблица транзакций, которую я хочу связать с порядком моей дилеммой, я не могу просто сделать одно поле для orders_id, поскольку они могут перекрываться в двух разных таблицах. И не может объединить таблицу двух заказов, поскольку они содержат 2 разных типа информации. Как мне создать и привязать таблицу транзакций к этим таблицам заказов? Спасибо.

  • 1
    Не могли бы вы сделать заказы на кредитование сайта и заказы на продукцию эксклюзивным подтипом?
  • 0
    Похоже, вы попали на деньги, которые я сейчас изучаю. Благодарю.
Теги:
database
database-design
innodb

1 ответ

2
Лучший ответ

Просто чтобы развернуть мой комментарий:

Таблица ордеров с OrderId и OrderType ( "Продукт" или "Кредит сайта", это называется дискриминатором подтипа).

Таблица Sitecredit_Orders с OrderId (внешний ключ для Orders.OrderId) и все другие поля, необходимые для кредитов сайта.

Таблица Product_Orders с OrderId (внешний ключ для Orders.OrderId) и все другие поля, необходимые для продуктов.

Таблица транзакций с OrderId (внешний ключ для Orders.OrderId).

Когда вы добавляете новый кредит на сайт или заказ продукта, вам нужно будет вставить две таблицы вместо одной. Вставьте новую запись в Orders, получите OrderId (при условии, что он автогенерирован), а затем вставьте запись в одну из таблиц подтипа, используя тот же OrderId.

  • 0
    ОГРОМНОЕ СПАСИБО, именно то, что мне нужно.
  • 0
    Какой тип поля я должен сделать OrderType?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню