|
|
|
| Привет, хочу спросить совета и узнать подводные камни структуры таблицы для добавления пользователей в друзья или запоминания новостей пользователями к себе в закладки
Первым вариантом думал сделать 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 | |
|
|
|
|
|
|
|
для: tima2010
(12.01.2012 в 22:29)
| | ну на вскидку друзья и новости это разные сущности, стало быть и таблицы должны быть разные
не нужно мешать мух с котлетами :)
таблица frends
id | id_user | id_frend | datetime
таблица f_news
id | id_user | id_news | |
|
|
|
|
|
|
|
для: Valick
(13.01.2012 в 01:02)
| | А это очень плохо мешать мух с котлетами? Хранятся только ID-шники новостей или друзей
Просто по мне так чем компактнее база данных тем лучше, чисто эстетическое ощущение.
Ведь выбирать из базы данные будет очень просто, типа
SELECT * FROM `mytable` WHERE `user_id` = '1' AND `type` = '2'
|
| |
|
|
|
|
|
|
|
для: tima2010
(13.01.2012 в 09:09)
| | а по мне так при построении базы данных нужно руководствоваться правилами нормализации
но база ваша и вы в праве поступать как душе угодно | |
|
|
|
|
|
|
|
для: Valick
(13.01.2012 в 10:07)
| | Valick, интересно, где можно ознакомится с правилами нормализации | |
|
|
|
|
|
|
|
для: tima2010
(13.01.2012 в 10:42)
| | В хорошем учебнике по реляционным базам данных. Однако, стоить помнить, что предельная нормализация - это не всегда хорошо, иногда денормализация позволить ускорить работу некоторых запросов (если они у вас происходят часто - вы выигрываете). Кроме того, учить нормальные формы вовсе не обязательно, нужно просто не допускать дублирования информации в таблицах и нормальные формы у вас будут получаться автоматически. | |
|
|
|
|
|
|
|
для: cheops
(13.01.2012 в 11:25)
| | категорически несогласен, первые три нормальные формы используются практически всегда
лично мое мнение, то что учить их стоит однозначно | |
|
|
|
|
|
|
|
для: Valick
(13.01.2012 в 11:52)
| | Можно выучить, хуже не будет, впрочем каких-то откровений там нет, если человек понимает реляционные отношения, он очень быстро к этим формам сам приходит... | |
|
|
|