Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Хранить в БД или нет

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
vanicon
Отправлено: 12 Сентября, 2011 - 16:28:06
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Есть портал(пока в разработке), и там можно будет добавляться в друзья, общаться между друзьями и тд.
И у меня перед всем этим есть несколько вопросов где хранить данные типа:
логин|друг(логин)
и всякое такое, можно хранить все это и в БД но это будет хорошо работать если пользователей будут около 5-10 тыс, и у всех у них будут друзья и тд. Может быть хранить все это дело в xml файлах(создавать отдельно для каждого пользователя по 1 xml файлу) и там хранить логины его друзей, общую информацию о пользователю и тд. И потом парсить все это(с помощью SimpleXml) и делать манипуляции этих данных и тд. Просто хочется сделать сразу как следует чтобы потом не пришлось все напрочь переделывать или создавать все по новой... Может кто поможет советом, как мне быть.


-----
Так было, так есть и так будет
 
 Top
LIME
Отправлено: 12 Сентября, 2011 - 16:33:37
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




только БД без вариантов
(Добавление)
если база будет небольшой - SQLite
 
 Top
vanicon
Отправлено: 12 Сентября, 2011 - 18:10:15
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Цитата:
только БД без вариантов

Допустим у пользователя будет 2000-4000 тыс друзей и если делать одну таблицу для ВСЕХ друзей такого типа:
логин(пользователя) | логин(друга)
ivan misha
и таких строк будет около 2-4 тыс.
А если сделать сортировку по алфавиту, допустим по первой букве логина пользователя и для каждой буквы создать отдельную такую таблицу, то там полей конечно будет меньше, так как там будет храниться только та группа пользователей у которых буква начинается на "i" допустим и тд. Но все же и там со временем будет полей не мало...
Или же можно как - то по другому все это реализовать?


-----
Так было, так есть и так будет
 
 Top
LIME
Отправлено: 12 Сентября, 2011 - 19:30:42
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




можно так
делаем таблицу пользователей
для каждого пользователя таблицу отношений с другими пользователями
назвать ее можно по логину
в ней будут перечислятся id пользователей к которым есть отношение
можно сделать флаг: друг, враг, игнор и тд

зы : "отношение" это математический термин ))

(Отредактировано автором: 12 Сентября, 2011 - 19:33:37)

 
 Top
vanicon
Отправлено: 13 Сентября, 2011 - 05:47:06
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Цитата:
можно так
делаем таблицу пользователей
для каждого пользователя таблицу отношений с другими пользователями
назвать ее можно по логину
в ней будут перечислятся id пользователей к которым есть отношение
можно сделать флаг: друг, враг, игнор и тд

зы : "отношение" это математический термин ))

Вы предлагаете сделать 2 таблицы, 1 таблицу для пользователей где будет храниться его логин, пасс и тд. И потом еще одну таблицу для каждого пользователя свою, где будет храниться id, login, и "флаг". Я Вас правильно понял или нет?


-----
Так было, так есть и так будет
 
 Top
LIME
Отправлено: 13 Сентября, 2011 - 08:30:02
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




не совсем
вся инфа о пользователе логин пасс итд в общей базе
и для каждого пользователя своя таблица такого вида
-------------------------------- -
название - логин (или ID) |
-------------------------------- -
id | flag...
id | flag...
id | flag...
ну и чтото еще можно
где id это id другого пользователя а flag указывает отношение с этим пользователем
при добавлении в друзья к примеру довавляем новую запись с id друга и flag=1
где 1-друг, 2-игнор и еще хз кого там придумаете ))
(Добавление)
чтото много букав ))
короче зачем логин в индивидуальной базе? ненужен
 
 Top
vanicon
Отправлено: 13 Сентября, 2011 - 12:57:45
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Цитата:
не совсем
вся инфа о пользователе логин пасс итд в общей базе
и для каждого пользователя своя таблица такого вида

Ну был и такой вариант, но мне смущает то что для каждого пользователя придется создавать отдельную таблицу в БД. Если по такому же принципу исходить то для каждого пользователя придется создавать минимум таблиц 6(друзья | не друзья, потом записи пользователя, его личные характеристики, и всякие там медиа дела), то допустим что будет около 10 тыс зареганных пользователей и будет 60 тыс таблиц под них... У меня просто не было такого огромного кол-во таблиц, и я не знаю как будет работать mysql. Но все же я думаю что такое большое число таблиц не есть хорошо...


-----
Так было, так есть и так будет
 
 Top
EuGen Администратор
Отправлено: 13 Сентября, 2011 - 13:07:18
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Однозначно в БД.
БД специально создана для хранения и поиска данных. Здесь Вам и индексы и специально оптимизированные storage-engine - и транзакционность, словом то, чего нет у файловой системы (и, стало быть, придется реализовывать самостоятельно)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
LIME
Отправлено: 13 Сентября, 2011 - 13:56:04
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




vanicon пишет:
потом записи пользователя, его личные характеристики, и всякие там медиа дела
это можно в основную таблицу пользоватей засунуть
какие проблемы?
 
 Top
vanicon
Отправлено: 13 Сентября, 2011 - 14:12:44
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Цитата:
это можно в основную таблицу пользоватей засунуть

В остальную таблицу вряд ли получится, так как медиафайлы нужно будет загружать и т.д. А характеристики эта как бы статистическая информация и изменятся будет крайне редко... Поэтому в одну общую таблицу засунуть думаю не самая лучшая мысль


-----
Так было, так есть и так будет
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB