Jump to content
  • Sign Up
cyklop77

огранизация древовидных комментариев

Recommended Posts

помогите пожалуйста разобраться в вопросе

 

на одном из фреймворков задумал решить классическую задачу построения системы древовидных комментариев. она всегда решается(в простейшем случае) через стандартную схему построения таблички, которая имеет столбец 'parent_id', этот столбец содержит id родителя в видел числа(integer):



"id": integer, primary key
"parent_id", integer
"message", varchar


 

но недавно на довольно популяром ресурсе нашёл решение, которое предполагает использование следующей схемы:



"id": integer, primary key
"parent_id", varchar
"message", varchar


 

соответственно заполненная БД выглядит приблизительно следующим образом:

7b63d932ac714bf53cac10608dfb1e82.png

 

вопрос к профессионалам. такой способ организации двевовидных структур считается вполне нормальным и часто используется? я недавно в программировании поэтому и спрашиваю

Edited by cyklop77

Share this post


Link to post
Share on other sites

не совсем понятна такая структуру, которая применима именно к комментариям, если бы это были категории, то можно было бы подумать, что parent_id одновременно может принадлежать нескольким категориям (что вполне логично), но в этом случае (наверное) можно так же использовать и сериализованный массив, т.к. в последствии: 18/20/23/24 - тоже разбивается через explode на массив, я правильно понимаю?

Share this post


Link to post
Share on other sites

не совсем понятна такая структуру, которая применима именно к комментариям, если бы это были категории, то можно было бы подумать, что parent_id одновременно может принадлежать нескольким категориям (что вполне логично), но в этом случае (наверное) можно так же использовать и сериализованный массив, т.к. в последствии: 18/20/23/24 - тоже разбивается через explode на массив, я правильно понимаю?

да, как-то он потом разбивается. проблема в том, что мне кажется, так проектировать БД нельзя. теоретически одна ячейка должна содержать одно значение

 

а тут как минимум ещё потеря в скорости перебора таблицы получается... или я совсем по мелочам загоняюсь?

 

вот сам туториал, если это имеет значение(там есть сылка на видео). я плохо объясняю

Edited by cyklop77

Share this post


Link to post
Share on other sites

Если это комментарии, то однозначно parent_id > id любого потомка. Так что надо делать банально id int, parent_id int, comment text — построить это дерево можно за O(n), что более чем приемлемо.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Member Statistics

    46,897
    Total Members
    1,451
    Most Online
    Neovo
    Newest Member
    Neovo
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Спрашивают сейчас

  • Пишут сейчас

    • Дорогие Друзья! Рад вам сообщить о выходе новой версии движка Flextype 0.9.9! В Flextype 0.9.9 достаточно много важных изменений определяющих — то как будет выглядеть финальная версия Flextype 1.0.0, к которой я иду уже более двух лет! Были пересмотрены, обновлены и переписаны ключевые моменты ядра, ответственные за работу с Записями, Коллекциями, Кешем и Rest API. Подробнее в статье: https://vk.com/@flextype-flextype-099-reliz Большое спасибо всем за то, что вы являетесь частью сообщества Flextype!
    • Привет! Меня зовут Евгения и я ищу талантливых программистов в компанию DevCube. https://mydevcube.com/ Это международная компания, которая занимается DevOps, web и software разработками. На данный момент в команду требуются Full stack .NET (Junior & Senior) — 3+ year of commercial experience; — Strong knowledge of Angular 5+; — Strong knowledge of Typescript; — Experience with HTML/HTML5, CSS/CSS3, SCSS; — Good understanding of Git; — Conversational English. Будет плюсом: VB experience Условия: Удаленная работа full-time Зарплата от 10-20$/час по результатам собеседования. Обязательное условие - быть на связи до 21-22:00 по Москве. Для отклика прошу писать на почту: evgeniia.ko@mydevcube.com
    • Привет! Меня зовут Евгения и я ищу талантливых программистов в компанию DevCube. https://mydevcube.com/ Это международная компания, которая занимается DevOps, web и software development. На данный момент в команду требуются PHP developers (Junior & Senior) Requirements: — 3+ year of commercial experience; — Strong knowledge PHP 7+ — Framework knowledge — Conversational English — CSS, Json, HTML5 Будет плюсом: Shopify implementation expertise. Условия: Удаленная работа full-time Зарплата от 10-20$/час по результатам собеседования. Обязательное условие - быть на связи до 21-22:00 по Москве. Для отклика прошу писать на почту: evgeniia.ko@mydevcube.com
  • Popular Contributors

    Nobody has received reputation this week.

×
×
  • Create New...