Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
Есть портал(пока в разработке), и там можно будет добавляться в друзья, общаться между друзьями и тд.
И у меня перед всем этим есть несколько вопросов где хранить данные типа:
логин|друг(логин)
и всякое такое, можно хранить все это и в БД но это будет хорошо работать если пользователей будут около 5-10 тыс, и у всех у них будут друзья и тд. Может быть хранить все это дело в xml файлах(создавать отдельно для каждого пользователя по 1 xml файлу) и там хранить логины его друзей, общую информацию о пользователю и тд. И потом парсить все это(с помощью SimpleXml) и делать манипуляции этих данных и тд. Просто хочется сделать сразу как следует чтобы потом не пришлось все напрочь переделывать или создавать все по новой... Может кто поможет советом, как мне быть.
----- Так было, так есть и так будет
LIME
Отправлено: 12 Сентября, 2011 - 16:33:37
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
только БД без вариантов (Добавление)
если база будет небольшой - SQLite
vanicon
Отправлено: 12 Сентября, 2011 - 18:10:15
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
Цитата:
только БД без вариантов
Допустим у пользователя будет 2000-4000 тыс друзей и если делать одну таблицу для ВСЕХ друзей такого типа:
логин(пользователя) | логин(друга)
ivan misha
и таких строк будет около 2-4 тыс.
А если сделать сортировку по алфавиту, допустим по первой букве логина пользователя и для каждой буквы создать отдельную такую таблицу, то там полей конечно будет меньше, так как там будет храниться только та группа пользователей у которых буква начинается на "i" допустим и тд. Но все же и там со временем будет полей не мало...
Или же можно как - то по другому все это реализовать?
----- Так было, так есть и так будет
LIME
Отправлено: 12 Сентября, 2011 - 19:30:42
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
можно так
делаем таблицу пользователей
для каждого пользователя таблицу отношений с другими пользователями
назвать ее можно по логину
в ней будут перечислятся id пользователей к которым есть отношение
можно сделать флаг: друг, враг, игнор и тд
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
Цитата:
можно так
делаем таблицу пользователей
для каждого пользователя таблицу отношений с другими пользователями
назвать ее можно по логину
в ней будут перечислятся id пользователей к которым есть отношение
можно сделать флаг: друг, враг, игнор и тд
зы : "отношение" это математический термин ))
Вы предлагаете сделать 2 таблицы, 1 таблицу для пользователей где будет храниться его логин, пасс и тд. И потом еще одну таблицу для каждого пользователя свою, где будет храниться id, login, и "флаг". Я Вас правильно понял или нет?
----- Так было, так есть и так будет
LIME
Отправлено: 13 Сентября, 2011 - 08:30:02
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
не совсем
вся инфа о пользователе логин пасс итд в общей базе
и для каждого пользователя своя таблица такого вида
-------------------------------- -
название - логин (или ID) |
-------------------------------- -
id | flag...
id | flag...
id | flag...
ну и чтото еще можно
где id это id другого пользователя а flag указывает отношение с этим пользователем
при добавлении в друзья к примеру довавляем новую запись с id друга и flag=1
где 1-друг, 2-игнор и еще хз кого там придумаете )) (Добавление)
чтото много букав ))
короче зачем логин в индивидуальной базе? ненужен
vanicon
Отправлено: 13 Сентября, 2011 - 12:57:45
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
Цитата:
не совсем
вся инфа о пользователе логин пасс итд в общей базе
и для каждого пользователя своя таблица такого вида
Ну был и такой вариант, но мне смущает то что для каждого пользователя придется создавать отдельную таблицу в БД. Если по такому же принципу исходить то для каждого пользователя придется создавать минимум таблиц 6(друзья | не друзья, потом записи пользователя, его личные характеристики, и всякие там медиа дела), то допустим что будет около 10 тыс зареганных пользователей и будет 60 тыс таблиц под них... У меня просто не было такого огромного кол-во таблиц, и я не знаю как будет работать mysql. Но все же я думаю что такое большое число таблиц не есть хорошо...
----- Так было, так есть и так будет
EuGen
Отправлено: 13 Сентября, 2011 - 13:07:18
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Однозначно в БД.
БД специально создана для хранения и поиска данных. Здесь Вам и индексы и специально оптимизированные storage-engine - и транзакционность, словом то, чего нет у файловой системы (и, стало быть, придется реализовывать самостоятельно)
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
LIME
Отправлено: 13 Сентября, 2011 - 13:56:04
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
vanicon пишет:
потом записи пользователя, его личные характеристики, и всякие там медиа дела
это можно в основную таблицу пользоватей засунуть
какие проблемы?
vanicon
Отправлено: 13 Сентября, 2011 - 14:12:44
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
Цитата:
это можно в основную таблицу пользоватей засунуть
В остальную таблицу вряд ли получится, так как медиафайлы нужно будет загружать и т.д. А характеристики эта как бы статистическая информация и изменятся будет крайне редко... Поэтому в одну общую таблицу засунуть думаю не самая лучшая мысль
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.