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]   

> Без описания
MichaelPak
Отправлено: 20 Декабря, 2011 - 22:57:42
Post Id


Новичок


Покинул форум
Сообщений всего: 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 пользователья.
Мне на одном ресурсе сказали, что это не правильнои что надо читать про нормализацию данных.

Хотел бы услышать мнения умных и опытных людей.
 
 Top
sKaa
Отправлено: 20 Декабря, 2011 - 23:14:37
Post Id



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


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


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

[+]


MichaelPak пишет:
БД
Есть глобальная таблица users, в которой есть поля mail, password, id. При регистрации создаются отдельные таблице: user_profile_id, user_mail_id, user_friends_id, причем в конце каждой таблици добавляется id пользователья.
Мне на одном ресурсе сказали, что это не правильнои что надо читать про нормализацию данных.

Это не правильно.
Проще было бы в уже готовую таблицу записывать данные о пользователе, а сортировать по id.
 
 Top
MichaelPak
Отправлено: 20 Декабря, 2011 - 23:53:07
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Июль 2011  


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




А куда тогда совать сообщения? Друзей? В одной таблице вряд ли все поместится.
 
 Top
DlTA
Отправлено: 20 Декабря, 2011 - 23:55:57
Post Id



Постоянный участник


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


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




MichaelPak пишет:
Мне на одном ресурсе сказали, что это не правильнои что надо читать про нормализацию данных.
читали?
 
 Top
Okula
Отправлено: 20 Декабря, 2011 - 23:57:58
Post Id



Участник


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


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




А причём тут сообшения, друзья и т.д.? Ты для каждого пользователя таблицу создаёшь - это уже неправильно. а если у тебя будет более 1000 пользователей, у тебя валка получится.
Логичнее сделать одну таблицу для пользователей, таблицу для пользовательских настроек, таблицу для друзей, таблицу для сообщений и т.д. и уж никак не для каждого свою таблицу делать.
 
 Top
Реф
Отправлено: 20 Декабря, 2011 - 23:59:30
Post Id



Частый гость


Покинул форум
Сообщений всего: 159
Дата рег-ции: Июль 2010  
Откуда: Реутов, Россия


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




Создай три таблицы:
1. users (id, mail, password)
2. mails (user_from_id, user_to_id, text)
3. friends (id, friend_id)


-----
Думать надо головой, а не головкой!
 
 Top
MichaelPak
Отправлено: 21 Декабря, 2011 - 00:08:21
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Июль 2011  


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




Okula пишет:
А причём тут сообшения, друзья и т.д.? Ты для каждого пользователя таблицу создаёшь - это уже неправильно. а если у тебя будет более 1000 пользователей, у тебя валка получится.
Логичнее сделать одну таблицу для пользователей, таблицу для пользовательских настроек, таблицу для друзей, таблицу для сообщений и т.д. и уж никак не для каждого свою таблицу делать.

Реф пишет:
Создай три таблицы:
1. users (id, mail, password)
2. mails (user_from_id, user_to_id, text)
3. friends (id, friend_id)

А если у меня будет миллион сообщений? Представляете, сколько будет идти запрос:
PHP:
скопировать код в буфер обмена
  1. "SELECT `text` FROM `mails` WHERE `user_from_id` = '".$id1."' AND  `user_to_id` = '".$id2."'"
 
 Top
Реф
Отправлено: 21 Декабря, 2011 - 00:15:39
Post Id



Частый гость


Покинул форум
Сообщений всего: 159
Дата рег-ции: Июль 2010  
Откуда: Реутов, Россия


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




MichaelPak пишет:
А если у меня будет миллион сообщений? Представляете, сколько будет идти запрос:

Про индексирование и оптимизацию запросов почитайте.


-----
Думать надо головой, а не головкой!
 
 Top
MichaelPak
Отправлено: 21 Декабря, 2011 - 00:16:36
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Июль 2011  


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




Реф пишет:
Про индексирование и оптимизацию запросов почитайте.

Спасибо, почитаю.
 
 Top
caballero
Отправлено: 21 Декабря, 2011 - 00:39:17
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Цитата:
А если у меня будет миллион сообщений?

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

если user_from_id и user_to_id будут индексированы то запрос будет быстро


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
MichaelPak
Отправлено: 21 Декабря, 2011 - 01:04:32
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Июль 2011  


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




Спасибо, буду читать.
А можете сказать что-нибудь про архитектуру?
 
 Top
Мелкий Супермодератор
Отправлено: 21 Декабря, 2011 - 08:28:45
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




MichaelPak пишет:
А если у меня будет миллион сообщений?

Значение приличное, но всё равно - игрушка. Даже для MySQL.

MichaelPak пишет:
Представляете, сколько будет идти запрос:

Просто попробуйте. Заполните базу случайными данными.


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB