Jump to content

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


Go to solution Solved by Veseloff,

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
Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

 

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

 

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

Edited by cyklop77
Link to post
Share on other sites
  • Solution

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

  • Like 1
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

    47,215
    Total Members
    1,451
    Most Online
    RossProxy
    Newest Member
    RossProxy
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Свежие Темы

  • Последние сообщения

    • Full-R Естественно его там быть не должно, вы ведь перепутали значения маркированного и нумерованного списка. Тот атрибут, о котором речь в теме - считается актуальным, что мне и показалось весьма странным. Перечитайте тему внимательней.
    • Здравствуйте!Простите, если не сюда пишу.Уже несколько дней не могу найти свою ошибку.Прошу помощи.Пишу сайт.Вверху страницы горизонтальное меню - фиксированное.Под горизонтальным меню вставляю видео с текстом. Видео затеняется с помощью overlay.Все вставляется, но под видео большой отступ, заполненный тенью от видео.Как убрать большой отступ?На скрине выделена область, которую необходимо убрать.Сильно не пинайте, пожалуйста, только начинаю изучать это дело.Сайт запускаю на OpenServer. В веб еще не выкладывал. Index <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Мой сайт</title> <link rel="stylesheet" type="text/css" href="style/style.css"> <link rel="stylesheet" type="text/css" href="style/style-video.css"> <link href="https://fonts.googleapis.com/css?family=Merriweather|PT+Sans+Caption:400,700&display=swap" rel="stylesheet"> <link rel="shortcut icon" type="image/x-icon" href="favicon/favicon.ico"> </head> <body> <div class="fullscreen-bg"> <div class="overlay"> <h1>Простой пример<br>фонового видео на сайте</h1> </div> <video loop="" muted="" autoplay="" poster="video/fotopromo.png" class="fullscreen-bg__video"> <source src="video/videopromo.mp4" type="video/mp4"> </video> </div> <?php include('header.php'); ?> <div class="layout"> <?php include('nav.php'); ?> <div class="content"> <h1>Название страницы</h1> <p>Бла-бла.</p> </div> </div> <?php include('footer.php'); ?> </body> </html> Style-video .fullscreen-bg { overflow: hidden; z-index: -100; position: relative; height: 100%; width: 100%; padding-top: 45%; } .fullscreen-bg__video { position: absolute; top: 0; left: 0; width: 100%; } .overlay { background: rgba(0,0,0,0.6); position: absolute; top:0; left:0; width: 100%; height: 100%; z-index: 4; } .overlay h1 { text-align:center; color:#fff; font-size: 70px; margin-top:17%; } @media (max-width: 767px) { .fullscreen-bg { background: url('../video/fotopromo.png') center center / cover no-repeat; } .fullscreen-bg__video { display: none; } .overlay h1 { font-size: 40px; } } Понимаю, что строка 7 в коде style-video отвечает за это, но не знаю как правильно ее прописать.Сейчас там прописано: padding-top:45%;При уменьшении процента, на моем экране хорошо отображается.Но что будет на других экранах?При уменьшении окна браузера, тень опять появляется.
    • Я не обратил внимания что такая глупость может быть у кого-то в мыслях.   Что нельзя делать можно проверить вот тут: Showing results for contents of text-input area - Nu Html Checker (w3.org) В общем на сам атрибут валидатор не ругается, но совершенно ясно что его тут быть не должно. Может быть для каких то скриптов это нужно, но лучше использовать атрибуты data. Они все легальные.   Даже в случае, если подразумевается стиль листа это не документировано.     В основном стилевые атрибуты остаются актуальны только для таблиц. Иногда их можно также встретить в SVG, но это уже другая история.    
  • Popular Contributors

×
×
  • Create New...