| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > хранение одинаковых таблиц для разных юзеров |
| Автор: yngwie19 14.11.2009, 22:22 |
| Здравствуйте, у меня такая задача. При регистрации на сайте, для каждого пользователя создаются 4 таблицы с названиями: table_1, table_2, table_3, table_4. Подскажите как нужно организовать структуру хранения этих таблиц? База данных у меня одна, поэтому использование таблиц с одинаковыми названиями - Я так понимаю недопустимо. Подскажите как реализуется такая задача? Спасибо. |
| Автор: bars80080 15.11.2009, 01:03 |
| вот на редкость не содержательный вопрос. что за таблицы? ни разу не сталкивался, чтобы одному пользователю нужна была своя таблица. почему он не может обойтись общей? |
| Автор: yngwie19 15.11.2009, 01:09 |
| bars80080, помните Я задавал вопрос по поводу таблиц? Я решил по совету участников форума хранить эту информацию в таблицах базы данных. Однако у каждого пользователя будет свой(персональный) набор этих данных, но таблицы Я хочу называть одинаково для всех Да еще забыл добавить все 4 таблицы будут иметь между собой связи. |
| Автор: MoLeX 15.11.2009, 09:01 | ||
10.000 пользователей, следовательно 40.000 таблиц. Извините, но это бред. |
| Автор: skyboy 15.11.2009, 09:34 | ||
вот завелись-то yngwie19, как тебе подсказывает bars80080, должно быть четыре таблицы. В каждой(или же только в некоторых из них - ты говоришь, что таблицы связанные) добавь поле("колонку") id_user, в котором будет храниться для каждой записи("строки") таблицы указание на то, к какому пользователю относятся данные. |
| Автор: yngwie19 15.11.2009, 17:51 |
| skyboy, спасибо Я понял! |
| Автор: WolfAlone 18.11.2009, 09:45 |
| Попробуйте сделать так: Создавайте таблицы дописывая в конец названия идентификационный номер пользователя. Например: table1_userID038 или table1_userName. С остальными таблицами по аналогии. Идентификаторы пользователей можно брать из общей таблицы, в которой будет содержаться, например всего 2 поля, UserID и UserName. P.S. Уверен, что данную задачу можно решить и более рационально, но это первое, что пришло мне в голову в ответ на Ваш вопрос. |
| Автор: MoLeX 18.11.2009, 10:01 |
| WolfAlone, тему прочитай еще раз, внимательно посмотри на доводы и пойми что ты сказал |
| Автор: WolfAlone 18.11.2009, 10:21 |
| MoLeX, да, Вы правы. Не дочитал до конца... Хранение таблиц с одинаковыми именами в БД - невозможно. Т.к. управляющая БД программа (сервер БД) - не сможет идентифицировать, к какой именно таблице Вы хотите обратиться (К моему великому сожалению, в современные серверы БД не запрограммированы телепатические способности P.S. Во всём остальном - полностью согласен со всем выше написанным. |
| Автор: Ипатьев 18.11.2009, 10:36 |
| WolfAlone, при чем здесь одинаковые имена? Речь идет о том, что база данных - это не набор текстовых файлов. И она работает совсем по другим законам. По которым создание тыщи одинаковых таблиц - преступление. Совсем не обязательно писать глупость только потому, что она только что пришла в голову. Добавлено через 10 минут и 6 секунд yngwie19, кстати, если вы еще заходите в этот топик. Было бы неплохо, если бы вы показали здесь стркуктуру этих таблиц. Наверняка там найдется, что исправить и изменить. Раньше, чем вы начнете заполнять эти таблицы данными и напишете для работы с ними код. |
| Автор: WolfAlone 18.11.2009, 11:05 | ||
Какие ещё основания должны быть для написания глупостей? Я всего навсего выражаю собственное мнение. Которое, как и всякое другое имеет право на своё существование! В моей жизни мне не встречался ни один человек, который не делал бы глупостей и не ошибался бы ни разу. Но совершенно не обязательно корить его в этом (ИМХО)! |
| Автор: Ипатьев 18.11.2009, 11:33 |
| Для написания глупостей никаких оснований не нужно. А вот для того, чтобы промолчать или задать вопрос "а как правильно" - основания нужны, да. И очень желательно, чтобы они у вас появились. В принципе, вы имеете право на высказывание своего мнения. Но лучше его сначала адекватно оценить, и потом решить - стоит ли его высказывать, или лучше поинтересоваться правильным ответом. Проблема в том, что для вас любая информация - мнения. А надо бы, чтобы это были знания. Обсуждаемый вопрос относится к азбуке баз данных. Данные в базе должны лежать в строго определенной форме. В частности, все однородные данные должны лежать в одной таблице. |
| Автор: capitan 18.11.2009, 12:06 | ||||
yngwie19, Как то сталкивался с такой задачей. Таблицы создавались по такому алгоритму:
При таком методе будет создано 100 таблиц. Но с ними очень тяжело работать, если придется делать выборку из всех таблиц сразу. Т.ч. думайте. Данный метод имеет на жизнь для хранения , например, фотографий пользователей.
|
| Автор: Ипатьев 18.11.2009, 12:43 |
| capitan, он уже подумал. И и не стал делать тыщу одинаковых таблиц. А "данный метод" к базам данных не имеет никакого отношения. |
| Автор: MoLeX 18.11.2009, 12:47 |
| Модератор: закрыта |