Мне нужно спроектировать структуру таблиц с данными о продукте, чтобы соответствовать следующим требованиям:
1. A product consists of the following fields: EAN, CN, description, pvp
2. There are several types of users that access the products. The user types are not stable, they can be added or deleted at any time.
3. Any of the fields of the products may vary depending on the type of user who views it. For example:
У нас есть три пользователя:
1 - John - guest
2 - David - client
3 - Vicent - vip
У нас есть этот продукт сэти данные по умолчанию:
8470001234567 - 123456 - Iphone X - $799
Гость, вместо просмотра этих данных, видит следующее:
8431239876547 - 987654 - Iphone X - $849
Пользователи-клиенты видят данные по умолчанию, а пользователи vip видят:
8470001234567 - 654321 - Iphone X Sale - $709
Это означает, что пользователь видит данные по умолчанию для данного продукта, если нет исключения для его типа.Исключение может повлиять на любое поле (кроме идентификатора).
Я могу представить себе следующую структуру:
- PRODUCTS : id ,ean, cn, описание, pvp
- PRODUCT_EXCEPTION : product_id , user_type_id , ean, cn, описание, pvp
Я убедился, что с этой структурой делается много запросов, вы думаете о способе оптимизации этого, чтобы не было необходимости делать так много запросов?
Примечание 1: продукты содержатся впредложения, которые имеют определенное количество товаров.Примечание 2: я использую Laravel.Модель Offer связана с продуктами, то есть я получаю продукты следующим образом: $ offer-> products ()