Вот моя ситуация. У меня есть следующие таблицы:
- Продукт
- Атрибут продукта ,
- Продукт заказа (ссылается на идентификатор продукта и идентификатор заказа),
- Атрибут продукта заказа (ссылается на product_product и product_attribute).
Когда администратор входит, чтобы отредактировать атрибут продукта (например, «цвет»), он может удалить этот атрибут по ошибке и позже добавить его обратно. Если заказы на этот продукт уже были размещены, то при удалении и повторном добавлении атрибута его идентификатор в таблице атрибутов продукта изменяется. Это делает так, чтобы атрибут Product Order ссылался на несуществующий идентификатор атрибута (хотя атрибут все еще существует).
Как лучше всего решить эту проблему? Может быть, мне просто нужен другой взгляд на проблему.
Примечание: проблема также может возникнуть (что не менее важно), если при редактировании продукта все атрибуты сбрасываются, а те, которые выбраны в данный момент, которые могут быть одинаковыми, повторно добавляются.