Лучший дизайн базы данных для цены на общедоступную продукцию по ценам на пользователя (без создания миллиардов строк)? Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Лучший дизайн базы данных для цены на общедоступную продукцию по ценам на пользователя (без создания миллиардов строк)?

Сообщение Anonymous »

Вопрос: < /strong>
I в настоящее время разрабатываю портал B2B с использованием Laravel (Backend) и планирование наилучшего возможного дизайна базы данных для обработки публичных продуктов с конкретными пользователями цен. (Покупатели). < /li>

[*] Каждый пользователь имеет доступ ко всем публичным продуктам, но у каждого пользователя есть уникальная цена для каждого продукта. Не на основе зоны, на основе компании или на основе группы.

Обратите внимание: [/b] по зоне или по ценам в компании уже реализовано отдельно. Этот вопрос строго относится к конкретному пользователю цены.

Код: Выделить всё

user_id | product_id | price
< /code>
[b] приведет к 1000 × 3000 = 3 миллиона строк. This raises several problems:[/b]

[*]Performance concerns when querying per-user product listings

[*]Slower inserts/updates

[*]High storage consumption

[*]  Сложность в масштабировании по мере увеличения количества пользователей и продуктов
[b] Моя альтернативная идея дизайна: < /strong>
Вместо хранения одной строки на комбинацию пользователя продукта я рассматривал такой дизайн: < /p>
Таблица: public_product_prices
id | user_id | product_ids (массив или json) | Цены (массив или json) < /p>
< /li>
< /ul>
Каждая строка будет содержать все идентификаторы продукта и соответствующие цены для этого пользователя. Цена в позиции N будет соответствовать идентификатору продукта в позиции n. < /P>
Когда пользователь входит в систему, система будет: < /p>
Fetch the public_product_prices row where user_id = current_user

Match each product ID to its price by using the array index
< /code>
Это уменьшает количество строк до одного пользователя, а не миллионы. Операции массива и JSON являются
limited.
< /ul>

 Я открыт для использования Postgresql, только если нет лучшего варианта, но я бы предпочел бы избежать переключения, если это возможно, из -за существующего
producture. Для пользователя: < /p>

 В этой модели я бы обнаружил индекс массива для идентификатора продукта и
обновлять только соответствующее значение в массиве цен. Индексация не является простой. 
Будет ли эта конструкция значительно замедлить операции чтения по мере роста данных?When a new user registers, how should I initialize their pricing data?

Copying the array structure from another user or a template could work, but what is the best practice for bulk initializing product-price mappings for new users?
согласованность данных: [/b]
If the number of product IDs and prices becomes mismatched in an array or JSON, it could lead to incorrect pricing being shown.

Is there a recommended way to enforce consistency between these two arrays, or should I move to a safer structure?
< /code>
Что я ищу: < /strong> < /p>

Разрешается ли дизайн хранения массивов продуктов или json

/> Структура безопасно, быстрая и обслуживаемая? Системы.
Спасибо.


Подробнее здесь: https://stackoverflow.com/questions/795 ... without-cr
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»