Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Структура таблицы для друзей или like
 
 автор: tima2010   (12.01.2012 в 22:29)   письмо автору
 
 

Привет, хочу спросить совета и узнать подводные камни структуры таблицы для добавления пользователей в друзья или запоминания новостей пользователями к себе в закладки

Первым вариантом думал сделать ID постов через запятую, то есть при нажатии на кнопку добавить в друзья в ячейку записывались данные вида: id,id,id,id,id,id потому разбивать при помощи PHP... Как я понял из прочтенных тем на форуме это гиблый вариант.

Тогда подумал, лучше сделать отдельную таблицу такой структуры


id | user_id | user_like | type
1  | 1       | 13        | 2 
2  | 1       | 24        | 1
3  | 13      | 1         | 2


где
user_id - ID юзера который нажал кнопку
user_like - ID новости или ID пользователя который добавил пользователь
type - цифрами записываем к чему это относится (1 запись, 2 друг)

Для чего все это:
1. Пользователь добавляет в закладки новость, на определенной странице отображаются новости которые ему понравились
2. Пользователь добавляем в друзья другого пользователя, на определенной странице отображается список друзей которых он добавил, и в запросе так же делаем проверку если друг который добавлен так же добавил его отображаем взаимную дружбу.

Что делаю не правильно? что лучше сделать по другому? Подскажите пожалуйста.

p.s. все эти манипуляции далее хочу реализовывать средствами jquery и ajax

  Ответить  
 
 автор: Valick   (13.01.2012 в 01:02)   письмо автору
 
   для: tima2010   (12.01.2012 в 22:29)
 

ну на вскидку друзья и новости это разные сущности, стало быть и таблицы должны быть разные
не нужно мешать мух с котлетами :)
таблица frends
id | id_user | id_frend | datetime

таблица f_news
id | id_user | id_news

  Ответить  
 
 автор: tima2010   (13.01.2012 в 09:09)   письмо автору
 
   для: Valick   (13.01.2012 в 01:02)
 

А это очень плохо мешать мух с котлетами? Хранятся только ID-шники новостей или друзей
Просто по мне так чем компактнее база данных тем лучше, чисто эстетическое ощущение.

Ведь выбирать из базы данные будет очень просто, типа
SELECT * FROM `mytable` WHERE `user_id` = '1' AND `type` = '2'

  Ответить  
 
 автор: Valick   (13.01.2012 в 10:07)   письмо автору
 
   для: tima2010   (13.01.2012 в 09:09)
 

а по мне так при построении базы данных нужно руководствоваться правилами нормализации
но база ваша и вы в праве поступать как душе угодно

  Ответить  
 
 автор: tima2010   (13.01.2012 в 10:42)   письмо автору
 
   для: Valick   (13.01.2012 в 10:07)
 

Valick, интересно, где можно ознакомится с правилами нормализации

  Ответить  
 
 автор: cheops   (13.01.2012 в 11:25)   письмо автору
 
   для: tima2010   (13.01.2012 в 10:42)
 

В хорошем учебнике по реляционным базам данных. Однако, стоить помнить, что предельная нормализация - это не всегда хорошо, иногда денормализация позволить ускорить работу некоторых запросов (если они у вас происходят часто - вы выигрываете). Кроме того, учить нормальные формы вовсе не обязательно, нужно просто не допускать дублирования информации в таблицах и нормальные формы у вас будут получаться автоматически.

  Ответить  
 
 автор: Valick   (13.01.2012 в 11:52)   письмо автору
 
   для: cheops   (13.01.2012 в 11:25)
 

категорически несогласен, первые три нормальные формы используются практически всегда
лично мое мнение, то что учить их стоит однозначно

  Ответить  
 
 автор: cheops   (13.01.2012 в 12:14)   письмо автору
 
   для: Valick   (13.01.2012 в 11:52)
 

Можно выучить, хуже не будет, впрочем каких-то откровений там нет, если человек понимает реляционные отношения, он очень быстро к этим формам сам приходит...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования