Форум программистов, компьютерный форум, киберфорум
Проекты
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.74/47: Рейтинг темы: голосов - 47, средняя оценка - 4.74
18 / 15 / 1
Регистрация: 20.04.2010
Сообщений: 318
1

Давайте напишем соц.сеть. Объединяемся.

23.04.2010, 21:53. Показов 8406. Ответов 88
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Короче давайте напишем двиг.соц.сети.

Как это будет происходить? Открываем закрытый форум.
В нем пишем и публикуем свои коды - разработку ведем вместе.

Коды написсанные всеми можем использовать по своему смотрению..
Что мы получим от этого?

Поймем как луше писать соц.сеть, а как нет.
Получим исходник соц.сети.

В паблик естественно это не пустим - будем использовать на своих серверах.

Что от себя могу предложить :
пхп, мускул, постгрее, си, дельфи, ооп, проектирование бд (норм.формы), сокеты.

Проект потребует я думаю месяцев 6-10. Чем больше человек тем лучше.
3
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2010, 21:53
Ответы с готовыми решениями:

Проект соц. сеть старт игра
Добрый день! Некоторые элементы того, что необходимо реализовать описал Здесь. Буду рад любому...

Давайте напишем сказку №3
Запрещены машины и механизмы, кроме известных в средневековье, включая позднее (вроде мельниц),...

Давайте напишем сказку #2
Ладно, начнём заново. В полночь вспенилась вода и на берег вышло чудище морское: три хвоста, крылья...

Давайте напишем сказку!
Давайте напишем сказку! Каждый пишет по фразе и посмотрим что получится! Правила форума не...

88
18 / 15 / 1
Регистрация: 20.04.2010
Сообщений: 318
24.04.2010, 22:30  [ТС] 21
Author24 — интернет-сервис помощи студентам
потенциальные участники сей задумки.
Сначала нужно разработать скрипт который будет выдерживать большую нагрузку
+ чтобы было как можно меньше связей в базе данных.

Давайте сделаем что-то простое, запустим, протестируем. Это будет первый шаг.
Далее будет второй шаг. Доработка дополнительных возможностей.

Ждем ещё участников..

P.S: у каждого свое мнение. Нам нужно быть дружней + как то сформировать одну цель.
(мне без разницы как там все сделано будет, мне главное быстро и чтобы большую посещаемость выдержало - одному такие вещи долго писать, а команда это хорошо).

Кто согласен начинать работать, указывайте что умеете из :
php,mysql,postgresql, linux, apache, html,css, ООП, проектирование БД(нормальные формы).
0
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
24.04.2010, 22:35 22
Вы что-то новое будете писать или ко мне присоединитесь?
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
24.04.2010, 22:56 23
Я думаю, надо начать с разработки БД.
База пользователей
id пользователя
логин пользователя
пароль пользователя
имя пользователя
фамилия пользователя
дата рождения
email
последнее посещение
дата регистрации
тип пользователя (пользователь, бан)
страна проживания

фотогалерея

id
id пользователя
title галереи

фото

id
id пользователя
id галереи
ссылка

стена

id записи
id пользователя
id автора
текст

друзья

id
id первого пользователя
id второго пользователя
1 пользователь подтвердил
2 пользователь подтвердил

Внутренняя почта

id
user_id
от кого
тайтл
текст письма
вложения...

Может что-то переделать + доработать?
0
18 / 15 / 1
Регистрация: 20.04.2010
Сообщений: 318
25.04.2010, 02:49  [ТС] 24
Её нужно оптимизировать до Нормальной формы Бойсса Кодда. Хотя... скоро проверю все, ну и сам посмотри.
нужно определиться на mysql или postgresql будем делать?
0
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
25.04.2010, 09:27 25
Цитата Сообщение от OopsOops Посмотреть сообщение
нужно определиться на mysql или postgresql будем делать?
пока на MySQL - она быстрее всего обрабатывает несложные запросы.
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
25.04.2010, 11:12 26
mysql или postgresql
mysql
0
5 / 5 / 0
Регистрация: 09.01.2010
Сообщений: 161
25.04.2010, 11:47 27
я готов помочь
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
25.04.2010, 11:48 28
MySQL больше людей знают... лучше сделать на нём. А потом в крайнем случае можно будет в движке изменить пару функций, что бы с Postgre работал.
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
25.04.2010, 12:14 29
Вот, пробную структуру сделал. Проблема возникла с таблицей mail. Как мы будем вложения хранить?
SQL
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
CREATE TABLE IF NOT EXISTS `friends` (
  `id` INT(50) NOT NULL AUTO_INCREMENT,
  `user_1` INT(25) NOT NULL,
  `user_2` INT(25) NOT NULL,
  `user_1_OK` INT(1) NOT NULL,
  `user_2_OK` INT(1) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `photo` (
  `id` INT(50) NOT NULL AUTO_INCREMENT,
  `galery_id` INT(27) NOT NULL,
  `src` VARCHAR(15) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `photo_galery` (
  `id` INT(27) NOT NULL AUTO_INCREMENT,
  `user_id` INT(25) NOT NULL,
  `title` VARCHAR(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `users` (
  `id` INT(25) NOT NULL AUTO_INCREMENT,
  `login` VARCHAR(25) NOT NULL,
  `password` VARCHAR(40) NOT NULL COMMENT 'md5',
  `name` VARCHAR(25) DEFAULT NULL,
  `lname` VARCHAR(25) DEFAULT NULL,
  `birthday` DATE DEFAULT NULL,
  `email` VARCHAR(40) NOT NULL,
  `last_update` DATE NOT NULL,
  `registration` DATE NOT NULL,
  `type` INT(1) NOT NULL,
  `ip` VARCHAR(15) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `wall` (
  `id` INT(50) NOT NULL AUTO_INCREMENT,
  `user_id` INT(25) NOT NULL,
  `from_user_id` INT(25) NOT NULL,
  `text` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
0
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
25.04.2010, 12:27 30
Dimedrol, структуру (фактическую) не экономично придумал.
кроме OopsOops ко мне никто не присоединяется?
у меня давным давно все БД и прочее создано, осталось только дорабатывать.

Добавлено через 56 секунд
Цитата Сообщение от Dimedrol Посмотреть сообщение
Как мы будем вложения хранить?
id вложения
с помощью этого ID будем генерировать ссылку на вложение
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
25.04.2010, 14:02 31
Dimedrol, MyISAM неприемлем для высоких нагрузок... при каждой записи таблица будет блокироваться... и в это время с ней ничего нельзя будет сделать. Нужен InnoDB.

Добавлено через 35 секунд
И CHARSET надо хотя бы cp1251... а лучше utf8

Добавлено через 3 минуты
Столбцам желательно указывать NOT NULL... говорят, это чуточку быстрее работает. И не совсем понимаю, зачем указывать INT(25) и INT(27)... ведь INT может быть только до 2147483648, а INT UNSIGNED до 4294967296... итого максимум 11 (вместе с минусом)

Добавлено через 31 минуту
В общем, из того, что предложил Dimedrol было бы лучше сделать так:
SQL
1
2
3
4
5
6
7
CREATE TABLE IF NOT EXISTS `friends` (
  `user_1` INT UNSIGNED NOT NULL,
  `user_2` INT UNSIGNED NOT NULL,
  `status` TINYINT UNSIGNED NOT NULL, /* 0=все подтвердили... 1=подтвердил только второй, 2=подтвердил первый, 3=никто не подтвердил */
  PRIMARY KEY (`user_1`,`user_2`),
  UNIQUE(`user_2`,`user_1`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;
id тут нафиг не нужен... поиск будет идти по пользователям. Но не знаю, насколько это экономично. Возможно, стОит продублировать все записи... например, для каждой дружбы сохранять две записи: что первый дружит со вторым и второй дружит с первым. Тогда индекс UNIQUE будет не нужен и искать связи пользователя можно будет не как WHERE user_1=1 OR user_2=1, а просто WHERE user_1=1... искать по одному полю должно получиться быстрее... особенно, если это поле будет в PRIMARY KEY.


SQL
1
2
3
4
5
6
7
CREATE TABLE IF NOT EXISTS `photo` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `galery_id` INT UNSIGNED NOT NULL,
  `src` VARCHAR(30) NOT NULL,
  PRIMARY KEY (`id`),
  KEY(`galery_id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;
Всё почти так же, только добавил индекс по номеру галереи и расширил описание.

SQL
1
2
3
4
5
6
7
CREATE TABLE IF NOT EXISTS `photo_galery` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `user_id` INT UNSIGNED NOT NULL,
  `title` VARCHAR(100) NOT NULL,
  PRIMARY KEY (`id`),
  KEY(`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;
Добавил индекс по user_id

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CREATE TABLE IF NOT EXISTS `users` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `login` VARCHAR(25) NOT NULL,
  `password` CHAR(32) NOT NULL COMMENT 'md5',
  `name` VARCHAR(25) NOT NULL,
  `lname` VARCHAR(25) NOT NULL,
  `birthday` DATE NOT NULL,
  `email` VARCHAR(40) NOT NULL,
  `last_update` DATETIME NOT NULL,
  `registration` DATE NOT NULL,
  `type` TINYINT UNSIGNED NOT NULL,
  `ip` CHAR(15) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE(`login`),
  KEY(`name`),
  KEY(`lname`),
  UNIQUE(`email`),
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;
Тут пароль изменил с VARCHAR(40) на CHAR(32)... если там планируется хранить md5, то нужно не больше, не меньше, а именно 32 байта (если хранить в текстовом виде). last_update изменил на DATETIME, т.к. фраза, что "вы были сегодня" мало о чём говорит... пусть лучше время ещё пишет. type изменил на TINYINT (однобайтовый) незачем для простого флага 4 байта занимать. Все DEFAULT NULL заменил на NOT NULL. И ip изменил на CHAR... думаю, что тут вообще лучше все VARCHAR на CHAR заменить... если таблица будет статической, то не будет фрагментации. Для тех же целей, возможно, будет лучше не удалять полностью запись, а только обнулять содержимое и помечать как удалённую.

Т.к. китайцев мы не ожидаем, то проще всего использовать cp1251... тогда не будет проблем с размерностями.
3
154 / 124 / 11
Регистрация: 11.01.2010
Сообщений: 434
26.04.2010, 04:10 32
Цитата Сообщение от Humanoid Посмотреть сообщение
Сама затея пустая (сейчас этих соц.сетей немерено), но подумать над задачей было бы интересно.
В целом я с Вами согласен

Цитата Сообщение от OopsOops Посмотреть сообщение
Плевать на конкуренцию.
С этим я с Вами не согласен, конкуренцию в любом случае нужно учитывать!

OopsOops если Ваша затея действительно будет разрабатываться по хорошо продуманной структуре и с созданием новых уникальных возможностей в соц.сети то, я тож не против помочь
0
Программист
107 / 111 / 9
Регистрация: 27.09.2009
Сообщений: 331
26.04.2010, 15:12 33
Цитата Сообщение от Humanoid Посмотреть сообщение
CREATE TABLE IF NOT EXISTS `friends` (
* `user_1` INT UNSIGNED NOT NULL,
* `user_2` INT UNSIGNED NOT NULL,
* `status` TINYINT UNSIGNED NOT NULL, /* 0=все подтвердили... 1=подтвердил только второй, 2=подтвердил первый, 3=никто не подтвердил */
* PRIMARY KEY (`user_1`,`user_2`),
* UNIQUE(`user_2`,`user_1`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;
Думаю,что это не подойдёт,т.к. праймари кии может быть только уникальное значение. Но ведь один юзер может дружить не только с одним другим,но и со многими. Поле будет дублироваться и будет возникать ошибка. Так что поле ид всё-таки придётся вернуть и присвоить ему значение первичного ключа
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
26.04.2010, 17:02 34
motakuji, так тут же не только один пользователь указан в ключе, а два: PRIMARY KEY (`user_1`,`user_2`)... т.е. тут два человека не смогут несколько раз друг с другом дружить... а один с разными может.
0
Программист
107 / 111 / 9
Регистрация: 27.09.2009
Сообщений: 331
26.04.2010, 17:08 35
Humanoid, хм...чёт я не понял. или мои познания в мускл храмают))) праймори ки же только 1 поле может быть,а не 2
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
27.04.2010, 10:19 36
motakuji, могут быть несколько... главное, что бы общий размер был не больше 1000 байт. Только что попробовал создать эту таблицу - нормально создалась.

Добавлено через 17 часов 5 минут
Ну так что решили? Передумали?
0
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
27.04.2010, 10:53 37
Цитата Сообщение от Humanoid Посмотреть сообщение
Ну так что решили? Передумали?
это про что?
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
27.04.2010, 11:45 38
Цитата Сообщение от Kidalvь Посмотреть сообщение
это про что?
Про то что все резко затихли.
0
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
27.04.2010, 12:09 39
Humanoid, топикстартер ко мне присоединился. Про остальное не знаю.
0
26 / 25 / 3
Регистрация: 27.09.2009
Сообщений: 134
27.04.2010, 13:20 40
Я тоже хочу присоединиться.
Пытался в одиночку движок сайта писать, времени не хватило.

Я знаю:
PHP, MySQL, CSS/HTML, Javascript, Конфигруция Apache и .htaccess

Чего я не знаю:
JavaScript фреймворки (JQuery), технологию Ajax только начал изучать







Самое главное - найти необычную идею, чтобы была популярность !
Без неё эта затея будет пустой тратой кучи свободного времени.
Уже имел такой печальный опыт...
0
27.04.2010, 13:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2010, 13:20
Помогаю со студенческими работами здесь

Давайте что-нибудь напишем!
Давайте соберемся в группу и реализуем кокой-то проэкт, например MP3 Player. В качестве...

Давайте напишем простую 2d иру
Давайте соберемся и напишем просую 2d игру типа марио. Язык программирования С (в крайнем случае...

Есть идея - давайте напишем аналог winforms!
Давайте,все вместе напишем framework, аналог winforms!Думаю многие согласились бы на фреймворк в...

соц. сеть
Здравствуйте! В институте дали в рамках обучающего задание сделать некое подобие соц сети. Сайт...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Закрытая тема Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru