|
Как сделать лайки/дизлайки для блога в БД?
|
|||
---|---|---|---|
#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=40052637&tid=1539797]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
149ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 17ms |
total: | 276ms |
0 / 0 |