Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Структура БД, помогите составить правильно 
V
    Опции темы
Serious2008
Дата 19.2.2012, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 28.1.2011

Репутация: нет
Всего: нет



Здравствуйте. Сложилась дилема одна при создании одной базы данных.

И так предположим что у нас есть гипотетически 1 000 000 пользователей(да я понимаю что это нереально, но я надеюсь что моя идея во что-нибудь выгорит и не надо пинать, что зачем так на будущее надеяться, и авось не прокатит, и о этом рано думать, хочу сейчас подумать). И эти пользователи могут создавать особые данные, каждый пользователь предположим 10 000 этих данных, что уже означает что таблица данных 1 000 000 * 10 000, что уже не есть хорошо задержки по получению данных гарантированны. И так главная проблема. Как организовать эту базу чтобы были минимальные задержки. 

Есть у меня идея, таблица - связка, через которую можно объединять всё. Т.е. таблица типа id, user_id, data_id. И вроде бы всё хорошо, но это получиться всё равно слишком большая таблица. Из чего у меня возникла идея, разбивать пользователей и их данных по разным таблица(базам данных), но как определять кто из какой базы таблицы(базы данных). Самое наглядное решение приходящее в голову, это определённый диапазон id для определённой таблицы(базы данных). Но вроде бы, что-то не так.

Варианты все даже самые извращённые приму, т.к. планируется свой выделенный сервер. Поэтому извращаться можно как угодно.
PM MAIL   Вверх
Gold Dragon
Дата 20.2.2012, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 2
Всего: 71



а можно чуть по подробнее что за секретные данные и почему их так много для каждого пользователя? просто я что-то смутно представляю что это может быть smile

И по моему всё можно решить грамотным построением индексов


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Serious2008
Дата 20.2.2012, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 28.1.2011

Репутация: нет
Всего: нет



Gold Dragon, 
данные, ну представим что в таблице данных будет (id)INT(), varchar(255), DATETIME(),  (user_id)INT(), TINYINT(). В этой таблице только планируется 10 000 записей к каждому пользователю.

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

Выбрать из этой таблицы всё что связано с USER_ID.
Выбрать из этой таблицы опираясь на id из другой таблицы с данными, другая таблица id INT(), table_1_id INT(),varchar(255), text(), TINYINT(). 
А так же планируется поиск по первой таблице по varchar(255). Поэтому если будет несколько таблиц, то поиск усложниться. Данных во второй таблице связанных с первой, будет от 10 до 100. К каждому id

Это сообщение отредактировал(а) Serious2008 - 20.2.2012, 10:28
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0394 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.