DOLARiON
Гуру форума
- Регистрация
- 4 Сен 2006
- Сообщения
- 191
- Реакции
- 65
- Автор темы
- #1
итак есть огромная база с примерно такими таблицами:
Table `Group` {
id,
user,
param1_i,
param1,
param2_i,
param2,
...
param9_i,
param9
} - все поля числовые
~порядка 50 000 000 записей
соответственно каждое поле в таблице соответствует ID в другой таблице, где и лежат уже все необходимые данные
т.е.:
Table `Group` {
id, --> порядковый номер записи (набор параметров)
user, --> ID юзера -> таблица users
~
до этого момента все просто
LEFT JOIN `users` и полетели
...а вот дальше как быть:
~
param1_i, --> ID базы с данными... к примеру если param1_i == 1, то база с параметрами param_aa, если param1_i == 2, то база с параметрами param_ab... и т.д.
param1, --> соответственно, если param1_i == 1, то делаем лефт джоин таблички param_aa
param2_i, --> следующий параметр базы (к примеру == 10)
param2, --> соответственно выбираем из базы param_XX (последние 2 бкуы базы на основе param2_i), где param_XX.ID == param2
...
ну и т.д.
соответственно, за один присест (запрос) может быть до 10 инклюдов базы
}
соответственно, у меня есть изначальная разлиновка... какой параметр таблицы (paramX_i) соответствует какая таблица param_XX - тут все банально:
id - table
1 - aa
2 - ab
3 - ac
4 - ad
...
и т.д.
до zz
итого 676...
уважаемые Знатоки, а теперь внимание вопрос
как динамично подставлять таблицу?!
т.е.
у меня запрос
SELECT *
from `Group`
where `user`
LIMIT 10
соответственно сюда добавляем ЛЕФТ ДЖОИН users -> получаем инфу о юзере,
нужно так же подставлять
базу под каждый param и получать из нее данные одним запросом
PS. я вот тут подумал... может процедурами сделать?! ......правда ни разу их не юзал
Table `Group` {
id,
user,
param1_i,
param1,
param2_i,
param2,
...
param9_i,
param9
} - все поля числовые
~порядка 50 000 000 записей
соответственно каждое поле в таблице соответствует ID в другой таблице, где и лежат уже все необходимые данные
т.е.:
Table `Group` {
id, --> порядковый номер записи (набор параметров)
user, --> ID юзера -> таблица users
~
до этого момента все просто
LEFT JOIN `users` и полетели
...а вот дальше как быть:
~
param1_i, --> ID базы с данными... к примеру если param1_i == 1, то база с параметрами param_aa, если param1_i == 2, то база с параметрами param_ab... и т.д.
param1, --> соответственно, если param1_i == 1, то делаем лефт джоин таблички param_aa
param2_i, --> следующий параметр базы (к примеру == 10)
param2, --> соответственно выбираем из базы param_XX (последние 2 бкуы базы на основе param2_i), где param_XX.ID == param2
...
ну и т.д.
соответственно, за один присест (запрос) может быть до 10 инклюдов базы
}
соответственно, у меня есть изначальная разлиновка... какой параметр таблицы (paramX_i) соответствует какая таблица param_XX - тут все банально:
id - table
1 - aa
2 - ab
3 - ac
4 - ad
...
и т.д.
до zz
итого 676...
уважаемые Знатоки, а теперь внимание вопрос
как динамично подставлять таблицу?!
т.е.
у меня запрос
SELECT *
from `Group`
where `user`
LIMIT 10
соответственно сюда добавляем ЛЕФТ ДЖОИН users -> получаем инфу о юзере,
нужно так же подставлять
базу под каждый param и получать из нее данные одним запросом
PS. я вот тут подумал... может процедурами сделать?! ......правда ни разу их не юзал