Поскольку в вашей таблице orders
имеется много полей, и для предотвращения проблем производительности, другой подход может состоять в том, чтобы разбить таблицу orders
на несколько новых таблиц.Это предотвратит проблемы с производительностью и, вероятно, сделает все более организованным.Чтобы сохранить реляционные ограничения, выполните следующие действия:
- Решите, какие связанные поля вы будете перемещать в новые таблицы, и создайте их.
- Правильно установите
foreign key
в orders
в новых таблицах.Здесь я предполагаю, что ваши ключи сформированы одним полем. - Установите
primaty key
новых таблиц в то же поле, что и foreign key
.Это обеспечивает логическое 1:1
отношение: для каждой строки orders
может существовать только одна вторичная строка, и никакие вторичные строки не могут существовать без родительской orders
строки.
Чего вы не можете достичьПри таком подходе обязательные поля во вторичных таблицах принудительно существуют на уровне базы данных.Вы должны управлять этим самостоятельно или оставить все обязательные поля в «заказах».