|  | 
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ Я делаю блог в котором есть как минимум две разных сущности,которые можно лайкать. Вопрос - как правильно спроектировать таблицы? Единственный вариант,который мне приходит - создать две разных доп таблицы связей Юзер-пост и Юзер-комментариев. Одна с лайками для комментариев,а другая для постов,но я думаю,что это не верный подход. Как верно это сделать? Если что,то БД - Postgres ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.03.2021, 14:23 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ Начни с обдумывания вопроса "почему у меня пост и коммент - разные сущности". Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.03.2021, 14:27 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ Dimitry Sibiryakov, потому что это разные сущности.Пост и комментарий это разное ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.03.2021, 14:34 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ stavatar Dimitry Sibiryakov, потому что это разные сущности.Пост и комментарий это разное А комментарий к комментарию это еще одна разная? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.03.2021, 14:40 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ fkthat,нет,тут просто хранится ссылка у комментария на родителя. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.03.2021, 14:44 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ stavatar, А посмотреть как сделано - не судьба? У меня по запросу туева куча ссылок вылазит. Изучай сколько влезет, было б желание. Очередной изобретатель велосипеда ))) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.03.2021, 14:58 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ Злой Бобр,я,видимо,как то не так ищу,потмоу что я не нашел решения.По крайней мере,понятного мне ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.03.2021, 15:00 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ stavatarПост и комментарий это разное И чем же они отличаются? Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.03.2021, 15:05 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ Dimitry Sibiryakov stavatarПост и комментарий это разное И чем же они отличаются? Тем что комментарии могут друг на друга отвечать,а посты нет.Тем,что посты могут иметь теги,а комментарии нет.И мало ли чем еще их функциональность будет отличатся ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.03.2021, 15:09 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ stavatar, т.е. пост это комментарий с дополнительным функционалом. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.03.2021, 15:21 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ Агрох stavatar, т.е. пост это комментарий с дополнительным функционалом. Да,можно сказать и так ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.03.2021, 15:28 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ stavatar, поалагаю эту мысль и пытались до тебя довести комментаторы выше. Пост и комментарий по своему функционалу совпадают на 95% и ради этих самых 5% выделять новую таблицу с усложнением структуры БД не всегда имеет смысл. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.03.2021, 15:45 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ Агрох stavatar, поалагаю эту мысль и пытались до тебя довести комментаторы выше. Пост и комментарий по своему функционалу совпадают на 95% и ради этих самых 5% выделять новую таблицу с усложнением структуры БД не всегда имеет смысл. Просто ввести тип поста: Пост/Лайк/Дизлайк/Прочее ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 12.03.2021, 10:29 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ Агрох stavatar, т.е. пост это комментарий с дополнительным функционалом. Ровно наоборот. Коммент - это вырожденный и подчинённый пост. Иначе замучаетесь логически переворачивать при проектировании и разработке. В реальности посты первичны, а комменты подчинены и вторичны. Точно так же надо рассматривать и обобщения этих сущностей. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 21.05.2021, 13:58 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ stavatar Я делаю блог в котором есть как минимум две разных сущности,которые можно лайкать. Вопрос - как правильно спроектировать таблицы? Единственный вариант,который мне приходит - создать две разных доп таблицы связей Юзер-пост и Юзер-комментариев. Одна с лайками для комментариев,а другая для постов,но я думаю,что это не верный подход. Как верно это сделать? Если что,то БД - Postgres Как уже написано выше, она таблица/тип объекта для постов и комментов. И одна таблица для лайков. При чём любых лайков. Потому что лайк это лайк. Куда бы он не прилагался. Если лайки будут прилагаться к разным типам сущностей, то вводите центральную таблицу сущностей (объектов). Это в будущем поможет, система будет связной. Сквозное ID по всей системе весьма удобно во многих случаях. Только не нужно центральный идентификатор делать гуидом, если есть возможность этого избежать. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 21.05.2021, 14:06 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ Dimitry Sibiryakov stavatarПост и комментарий это разное И чем же они отличаются? нагрузкой они отличаются в первую очередь. Потому их и разделяют, чтобы на два порядка более высоконагруженная таблица коментов не тормозила выдачу постов. Лайки кстати тоже лучше иметь денормализованно в 2-х местах: и в своей сущности и отдельно счетчик в сущности того что лайкают. (который апдейтится асинхронно) опять же чтобы сверх-высоконагруженная сущность лайков ни на йоту не мешала выдаче постов и коментов. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 24.05.2021, 12:17 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ Ivan DurakПотому их и разделяют, чтобы на два порядка более высоконагруженная таблица коментов не тормозила выдачу постов. А, у вас MyISAM. Тогда да, конечно. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 24.05.2021, 12:36 |  | ||
| 
Как сделать лайки/дизлайки для блога в БД? | |||
|---|---|---|---|
| #18+ Ivan Durak Dimitry Sibiryakov пропущено... И чем же они отличаются? нагрузкой они отличаются в первую очередь. Потому их и разделяют, чтобы на два порядка более высоконагруженная таблица коментов не тормозила выдачу постов. Лайки кстати тоже лучше иметь денормализованно в 2-х местах: и в своей сущности и отдельно счетчик в сущности того что лайкают. (который апдейтится асинхронно) опять же чтобы сверх-высоконагруженная сущность лайков ни на йоту не мешала выдаче постов и коментов. Я бы сделал иначе: Корневая таблица Сообщения (Message), в которой лежат сообщения всех типов (включая форумы, как сообщения первого уровня, нулевой уровень - это сайт). Там самая базовая инфа, служащая исключительно для опознания сущностей, их связи (и генерации и хранения сквозного ID). К ней уже создаются добавочные таблицы для хранения дополнительных технических атрибутов, а так же собссно содержания. Вида MessageSubj и MessageLikes. В таблице сообщений создаём поле TypeID, ссылающееся на таблицу типов сообщений. Тип smallint или даже tinyint для экономии места и убыстрения чтения. Топики-посты значит у нас будут иметь тип сообщения = 3 (0 сайт, 1 форум, 2 прикреплённая тема). Комменты соответственно 4. А чтобы ничего не тормозило, создаём фильтрованный индекс с условием (TypeID = 3) и матвьюху, смотрящую на него. Для чего это всё делается именно так? Для единообразия и простоты кода. Который будет со временем усложняться и наворачиваться. Например управление правами куда как проще будет делать для одной таблицы, чем для многих разных (ну если делать в разных, то получим иерархию вложенности форум-топик-коммент-лайк, отдельно "личное сообщение" и т.п. и это только навскидку). ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 24.05.2021, 13:02 |  | ||
|  | 

| start [/forum/topic.php?fid=32&msg=40052614&tid=1539797]: | 0ms | 
| get settings: | 11ms | 
| get forum list: | 12ms | 
| check forum access: | 4ms | 
| check topic access: | 4ms | 
| track hit: | 37ms | 
| get topic data: | 10ms | 
| get forum data: | 2ms | 
| get page messages: | 53ms | 
| get tp. blocked users: | 1ms | 
| others: | 13ms | 
| total: | 147ms | 

| 0 / 0 | 
