Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 02.08.2014
Сообщений: 5

Структура сайта. Как лучше сделать?

02.08.2014, 21:15. Показов 940. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем Привет!
Ситуация в следующем:
Имеем: Фирма, Продавец, Клиент, Товар.
Мои предположения по количеству пользователей:
Количество фирм - 250-300 штук.
В каждой фирме по 2-4 продавцов. Всего 1 000 Продавцов
У каждого продавца по 500-700 Клиентов. Всего Клиентов 600 000 штук
Каждый клиент закупает товар в среднем по 3 шт. Всего Товаров 2 000 000 штук.
Товар рассчитывается скриптом на основании ввода необходимых данных Продавцом.
Скрипт на мой взгляд относительно «тяжелый». Время расчета одного Товара примерно 3-4 секунды. Тестировал на локальном сервере Денвер. Оптимизировать скрипт больше не получается

Теперь сама структура сайта.
Создаю одну базу данных SQL. В ней создаю основные таблицы: фирмы, продавцы, клиенты, товары, всего четыре таблицы. Все товары, всех продавцов, всех фирм лежат в одной таблице. Это самая большая таблица из всех существующих на моем сайте. В ней 2 000 000 товаров. Выборка товаров происходит по ID:
ID Фирмы
ID Продавца с внешним ключом ID Фирмы.
ID Клиента с внешним ключом ID Продавца.
ID Товара с внешними ключами ID Клиента.
Т.е. таблица Фирмы является родительской по отношению к таблице Продавцов, таблица Продавцов родитель для таблицы Клиентов, таблица Клиентов родитель для таблицы Товары.
В итоге: чтобы Продавцу найти в базе данных Клиента и его товары, скрипту необходимо переворошить 2 000 000 товаров сравнивая ID Товара с внешним ключом Продавца. А представить если это будут делать все одновременно. Мне кажется хостеры будут очень не довольны.

Вариант второй.
Создаю под каждую фирму свою отдельную базу данных SQL,
В ней три таблицы: "продавцы", "клиенты", "товары". Структура аналогичная. При этом количество позиций в самой большой таблице "Товары" ощутимо уменьшается. Примерно до 2000 штук на каждого Продавца, всего на 2-4 Продавцов 4000-8000 единиц товара. Скрипту гораздо веселее искать Товары в такой таблице. Но возникает необходимость в огромном количестве баз данных 250-300 штук. У многих хостеров количество баз данных ограничено 5-20 шт. Есть конечно же хостеры без ограничений количества баз данных, но у них есть ограничения по нагрузке, которая измеряется в каких-то непонятных единицах СР. Предположить какая у меня будет максимальная нагрузка я пока не могу. В итоге я на распутье двух дорог и по которой из них двигаться я не знаю.

В вопросе сайтостроения я пока еще новичок. Пытаюсь создать свой первый сайт. Прошу не судить строго.
Заранее всем благодарен.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.08.2014, 21:15
Ответы с готовыми решениями:

Как лучше обновлять контент сайта?
Доброго времени суток! Есть сайт - каталог. Всё вроде бы хорошо работает. Но сайт требует постоянного редактирования (товар есть/нет,...

Как лучше всего хранить контент сайта?
Привет всем. Недавно стал вопрос, как правильно хранить контент с тегами в бд. Допустим у меня есть 3000 статей из разных категорий, каждая...

Как лучше сделать с городами
Привет всем сейчас возникла проблема по поводу выбора города, в котором находится пользователь. Раньше я делал зависимые списки, но не...

3
SV
55 / 55 / 25
Регистрация: 03.08.2014
Сообщений: 258
04.08.2014, 06:09
Никто два миллиона потрошить не будет если к таблицам создать еще и индексы, это раз
Во вторых - создайте таки базу с двумя миллионами, с индексами и протестируйте, сколько запросов в секунду вы сможете вытянуть, и сколько вам надо.
А то так можно неделю оптимизировать а потом выяснить что реально хватило бы и в 100 раз меньше
1
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
04.08.2014, 10:53
Цитата Сообщение от Kristo78 Посмотреть сообщение
В итоге: чтобы Продавцу найти в базе данных Клиента и его товары, скрипту необходимо переворошить 2 000 000 товаров сравнивая ID Товара с внешним ключом Продавца
при наличии индексов поиск выполняется значительно быстрее, нежели прямой поиск по товарам. а по поводу 2000000 записей при хорошей посещаемости хостеру однозначно не понравится, лучше взять VPS/VDS, благо что можно найти по приблизительно такой же цене.
Ну и по поводу самой оптимизации - без дампа структуры БД и кода запросов подсказать что-то достаточно сложно.
1
0 / 0 / 0
Регистрация: 02.08.2014
Сообщений: 5
12.08.2014, 00:22  [ТС]
Спасибо! Я примерно себе так и представлял. Буду делать по первому варианту. С хостингом решать проблемы буду по мере их поступления. О ходе своих "побед и "неудач", если кому интересно, буду периодически сообщать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.08.2014, 00:22
Помогаю со студенческими работами здесь

Посоветуйте как лучше сделать
Система такая, юзер переходит по ссылке(ссылка не прямая, перекидывает через сервис) на страницу(на том же сайте) где генерируется код....

как лучше сделать? подскажите пожалуйста
Нужна помощь, кто нить подскажите в каком направление капать. ну и желательно названия этих методов что бы можно было почитать, хочется...

Как лучше сделать выборку из двух таблиц?
У меня две таблицы: ID|Предметы 1|Фрукты 2|Обощи 3|Мясо и ID|Наименование|ID_Предмета 1|Яблоки|1 2|Груши|1

Как лучше сделать подсчет количества записей в таблице?
Привет всем. У меня возник вопрос. Касается он подсчета количества записей в таблице. Сначала я думал остановиться на варианте SELECT...

Правильная структура сайта. Как сделать?
Есть 3х страничный сайт. Страницы: Главная, Инфо, Контакты. код файла index.php: <?php get_header(); get_content(); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru