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 :: Архитектура+БД социальной сети
Покинул форум
Сообщений всего: 44
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
Здравствуйте, уважаемые программисты.
Я новичек в php и начал делать свой первый сайт - социальную сеть. Знаю, что выбрал не самую легкую задачу, но тем не менее.
В интернете очень много об этом написано, но так же много и всего мусора. Поэтому, если вам не сложно, накидайте пару ссылок.
Как у меня реализовано:
Архитектура: в корневом каталоге лежат три папки: lib
site
sys
В lib находятся css, js, шаблоны шапки и меню и некоторые картинки.
В site лежит сам сайт. Там есть такие папки, как profile, friends, mail и так далее. Сделано это для того, чтобы человек, зайдя, например, в профиль, перешел по ссылке http://somesite.com/profile/. Все функциональные php-фалы лежат в папке processing. Например, добавление в друзья происходит через /site/friends/processing/add_friend
В sys находятся классы, функции и так далее.
БД
Есть глобальная таблица users, в которой есть поля mail, password, id. При регистрации создаются отдельные таблице: user_profile_id, user_mail_id, user_friends_id, причем в конце каждой таблици добавляется id пользователья.
Мне на одном ресурсе сказали, что это не правильнои что надо читать про нормализацию данных.
Хотел бы услышать мнения умных и опытных людей.
sKaa
Отправлено: 20 Декабря, 2011 - 23:14:37
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
MichaelPak пишет:
БД
Есть глобальная таблица users, в которой есть поля mail, password, id. При регистрации создаются отдельные таблице: user_profile_id, user_mail_id, user_friends_id, причем в конце каждой таблици добавляется id пользователья.
Мне на одном ресурсе сказали, что это не правильнои что надо читать про нормализацию данных.
Это не правильно.
Проще было бы в уже готовую таблицу записывать данные о пользователе, а сортировать по id.
MichaelPak
Отправлено: 20 Декабря, 2011 - 23:53:07
Новичок
Покинул форум
Сообщений всего: 44
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
А куда тогда совать сообщения? Друзей? В одной таблице вряд ли все поместится.
DlTA
Отправлено: 20 Декабря, 2011 - 23:55:57
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
MichaelPak пишет:
Мне на одном ресурсе сказали, что это не правильнои что надо читать про нормализацию данных.
читали?
Okula
Отправлено: 20 Декабря, 2011 - 23:57:58
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
А причём тут сообшения, друзья и т.д.? Ты для каждого пользователя таблицу создаёшь - это уже неправильно. а если у тебя будет более 1000 пользователей, у тебя валка получится.
Логичнее сделать одну таблицу для пользователей, таблицу для пользовательских настроек, таблицу для друзей, таблицу для сообщений и т.д. и уж никак не для каждого свою таблицу делать.
Реф
Отправлено: 20 Декабря, 2011 - 23:59:30
Частый гость
Покинул форум
Сообщений всего: 159
Дата рег-ции: Июль 2010 Откуда: Реутов, Россия
Покинул форум
Сообщений всего: 44
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
Okula пишет:
А причём тут сообшения, друзья и т.д.? Ты для каждого пользователя таблицу создаёшь - это уже неправильно. а если у тебя будет более 1000 пользователей, у тебя валка получится.
Логичнее сделать одну таблицу для пользователей, таблицу для пользовательских настроек, таблицу для друзей, таблицу для сообщений и т.д. и уж никак не для каждого свою таблицу делать.
"SELECT `text` FROM `mails` WHERE `user_from_id` = '".$id1."' AND `user_to_id` = '".$id2."'"
Реф
Отправлено: 21 Декабря, 2011 - 00:15:39
Частый гость
Покинул форум
Сообщений всего: 159
Дата рег-ции: Июль 2010 Откуда: Реутов, Россия
Помог: 0 раз(а)
MichaelPak пишет:
А если у меня будет миллион сообщений? Представляете, сколько будет идти запрос:
Про индексирование и оптимизацию запросов почитайте.
----- Думать надо головой, а не головкой!
MichaelPak
Отправлено: 21 Декабря, 2011 - 00:16:36
Новичок
Покинул форум
Сообщений всего: 44
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
Реф пишет:
Про индексирование и оптимизацию запросов почитайте.
Спасибо, почитаю.
caballero
Отправлено: 21 Декабря, 2011 - 00:39:17
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
А если у меня будет миллион сообщений?
не будет. (позаботся о том чтобы была хотя бы пара). Впрочем, пока ты достигнеш того профессионального уровня чтобы дописать таки свою соцсеть мода на соцсети уже пройдет.
Цитата:
Представляете, сколько будет идти запрос
если user_from_id и user_to_id будут индексированы то запрос будет быстро
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.