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

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> хранение одинаковых таблиц для разных юзеров 
V
    Опции темы
yngwie19
Дата 14.11.2009, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

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



Здравствуйте, у меня такая задача. При регистрации на сайте, для каждого пользователя создаются 4 таблицы с названиями: table_1, table_2, table_3, table_4. Подскажите как нужно организовать структуру хранения этих таблиц? База данных у меня одна, поэтому использование таблиц с одинаковыми названиями - Я так понимаю недопустимо. Подскажите как реализуется такая задача? Спасибо.
PM MAIL   Вверх
bars80080
Дата 15.11.2009, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



вот на редкость не содержательный вопрос.

что за таблицы?

ни разу не сталкивался, чтобы одному пользователю нужна была своя таблица. почему он не может обойтись общей?
PM MAIL WWW   Вверх
yngwie19
Дата 15.11.2009, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

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



bars80080, помните Я задавал вопрос по поводу таблиц? Я решил по совету участников форума хранить эту информацию в таблицах базы данных. Однако у каждого пользователя будет свой(персональный) набор этих данных, но таблицы Я хочу называть одинаково для всех
Цитата(yngwie19 @  14.11.2009,  22:22 Найти цитируемый пост)
названиями: table_1, table_2, table_3, table_4

Да еще забыл добавить все 4 таблицы будут иметь между собой связи.

Это сообщение отредактировал(а) yngwie19 - 15.11.2009, 01:10
PM MAIL   Вверх
bars80080
Дата 15.11.2009, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



Цитата(yngwie19 @  15.11.2009,  00:09 Найти цитируемый пост)
днако у каждого пользователя будет свой(персональный) набор этих данных

как из этого следует, что для пользователей должны быть разные таблицы?
почему не четыре на всех? достаточно включить там дополнительное поле id_user
PM MAIL WWW   Вверх
MoLeX
Дата 15.11.2009, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



Цитата(yngwie19 @  14.11.2009,  22:22 Найти цитируемый пост)
При регистрации на сайте, для каждого пользователя создаются 4 таблицы с названиями: table_1, table_2, table_3, table_4. 

10.000 пользователей, следовательно 40.000 таблиц.
Извините, но это бред.


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
skyboy
Дата 15.11.2009, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(MoLeX @  15.11.2009,  08:01 Найти цитируемый пост)
10.000 пользователей, следовательно 40.000 таблиц.

Цитата(bars80080 @  15.11.2009,  00:25 Найти цитируемый пост)
как из этого следует, что для пользователей должны быть разные таблицы?

вот завелись-то smile просто похоже впервые в жизни использует базу данных.
yngwie19, как тебе подсказывает bars80080, должно быть четыре таблицы. В каждой(или же только в некоторых из них - ты говоришь, что таблицы связанные) добавь поле("колонку") id_user, в котором будет храниться для каждой записи("строки") таблицы указание на то, к какому пользователю относятся данные.
PM MAIL   Вверх
yngwie19
Дата 15.11.2009, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

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



skyboy, спасибо Я понял!
PM MAIL   Вверх
WolfAlone
Дата 18.11.2009, 09:45 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

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



Попробуйте сделать так:
Создавайте таблицы дописывая в конец названия идентификационный номер пользователя. Например: table1_userID038 или table1_userName. С остальными таблицами по аналогии.

Идентификаторы пользователей можно брать из общей таблицы, в которой будет содержаться, например всего 2 поля, UserID и UserName.

P.S. Уверен, что данную задачу можно решить и более рационально, но это первое, что пришло мне в голову в ответ на Ваш вопрос.


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
MoLeX
Дата 18.11.2009, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



WolfAlone, тему прочитай еще раз, внимательно посмотри на доводы и пойми что ты сказал


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
WolfAlone
  Дата 18.11.2009, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

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



MoLeX, да, Вы правы. Не дочитал до конца... smile

Хранение таблиц с одинаковыми именами в БД - невозможно. Т.к. управляющая БД программа (сервер БД) - не сможет идентифицировать, к какой именно таблице Вы хотите обратиться (К моему великому сожалению, в современные серверы БД не запрограммированы телепатические способности smile )! Так же как в одном каталоге не могут лежать 2 файла с 100% одинаковыми именами (и расширением).

P.S. Во всём остальном - полностью согласен со всем выше написанным.


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
Ипатьев
Дата 18.11.2009, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

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



WolfAlone, при чем здесь одинаковые имена?
Речь идет о том, что база данных - это не набор текстовых файлов. И она работает совсем по другим законам. 
По которым создание тыщи одинаковых таблиц - преступление.

Цитата(WolfAlone @  18.11.2009,  09:45 Найти цитируемый пост)
но это первое, что пришло мне в голову в ответ на Ваш вопрос. 

Совсем не обязательно писать глупость только потому, что она только что пришла в голову.

Добавлено через 10 минут и 6 секунд
yngwie19, кстати, если вы еще заходите в этот топик.
Было бы неплохо, если бы вы показали здесь стркуктуру этих таблиц.
Наверняка там найдется, что исправить и изменить.
Раньше, чем вы начнете заполнять эти таблицы данными и напишете для работы с ними код.

Это сообщение отредактировал(а) Ипатьев - 18.11.2009, 10:43
PM MAIL   Вверх
WolfAlone
Дата 18.11.2009, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

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



Цитата(Ипатьев @  18.11.2009,  10:36 Найти цитируемый пост)
Совсем не обязательно писать глупость только потому, что она только что пришла в голову.

Какие ещё основания должны быть для написания глупостей?

Я всего навсего выражаю собственное мнение. Которое, как и всякое другое имеет право на своё существование! В моей жизни мне не встречался ни один человек, который не делал бы глупостей и не ошибался бы ни разу. Но совершенно не обязательно корить его в этом (ИМХО)!


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
Ипатьев
Дата 18.11.2009, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

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



Для написания глупостей никаких оснований не нужно.
А вот для того, чтобы промолчать или задать вопрос "а как правильно" - основания нужны, да. И очень желательно, чтобы они у вас появились.

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

Проблема в том, что для вас любая информация - мнения. А надо бы, чтобы это были знания.

Обсуждаемый вопрос относится к азбуке баз данных.
Данные в базе должны лежать в строго определенной форме. В частности, все однородные данные должны лежать в одной таблице. 


PM MAIL   Вверх
capitan
Дата 18.11.2009, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

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



yngwie19,  Как то сталкивался с такой задачей. Таблицы создавались по такому алгоритму:
Код

getUserTable($uid){
    $uid = intval($uid);
    $table_id = $uid % 100;
    return 'table_' . $table_id;
}


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

function getUserFolder($uid){
    $uid = intval($uid);

    $topFolder = $uid % 100;

    if ( !is_dir(SITE_DIR . 'users/' . $topFolder) ){
        mkdir(SITE_DIR . 'users/' . $topFolder);
    }

    if ( !is_dir(SITE_DIR . 'users/' . $topFolder . '/' . $uid) ){
        mkdir(SITE_DIR . 'users/' . $topFolder . '/' . $uid);
    }

    return 'users/' . $topFolder . '/' . $uid;

}

PM MAIL WWW ICQ   Вверх
Ипатьев
Дата 18.11.2009, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

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



capitan, он уже подумал. И и не стал делать тыщу одинаковых таблиц.
А "данный метод" к базам данных не имеет никакого отношения.


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


 




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


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

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