Просто чтобы расширить мой комментарий:
Таблица заказов с OrderId и OrderType («Продукт» или «Кредит сайта»; это называется дискриминатором подтипа).
Таблица Sitecredit_Ordersс OrderId (внешний ключ для Orders.OrderId) и всеми другими полями, необходимыми для кредитов сайта.
Таблица Product_Orders с OrderId (внешний ключ для Orders.OrderId) и всеми другими полями, необходимыми для продуктов.
Таблица транзакций с OrderId (внешний ключ для Orders.OrderId).
Когда вы добавляете новый кредит сайта или заказ товара, вам нужно будет вставить две таблицы вместо одной.Вставьте новую запись в Orders, получите OrderId (при условии, что он автоматически сгенерирован), а затем вставьте запись в одну из таблиц подтипов, используя тот же OrderId.