169 похожих чатов

Подскажите правильное хранение информации постов и комментарий на фронте. Сейчас

я такую схему придумал

Post InterfacePost{
Idpost:1,
Name: Igor,
Text: something,
Photo: [link,link,link]
Comments interfaceComments{
Idpost:1,
Name: igor
Text: something
Replay: true
Replay to whom: Igor
}
}

Я написал примерно нормально ли создать объект с комментами внутри объекта поста.

Посты работают, посты прекрасно выводятся и комментарии спокойно сделаю, просто хочу понять, кто-то делает по другому или это подходит?

И плохой ли это вариант?

22 ответов

9 просмотров

Добавить уникальный идентификатор для каждого комментария. Добавить поле для даты и времени создания комментария. Добавить поле для имени автора комментария. Рассмотреть возможность хранения комментариев в отдельной таблице. Обновить код для учета внесенных изменений.

Olegacat- Автор вопроса
Olegacat
Это я знаю, просто объект в объекте, норм так дела...

Лучше не слушай данного Кента Он портянки из чат жпт кидает (:

сделай врапер-обёртку класс для каждого обьекта (комент, пост) в который ты будешь ложить данные с бека, и там же логику работы с этими обьектами пропиши

Olegacat- Автор вопроса
dencelman Р
сделай врапер-обёртку класс для каждого обьекта (к...

Уже это все готово, для постов. Просто тут именно нету представления норм ли так. Но уже готово. И вопрос, как вы реализовывали бы replay в объекте?

Olegacat
Уже это все готово, для постов. Просто тут именно ...

в обьекте? или ты имеешь ввиду экземпляр класса?

Olegacat- Автор вопроса
ПРАВОСЛАВНЫЕ ЗНАКОМСТВА / РЕКЛАМА ЧАТОВ
Помогло?

Да, спасибо, я так и думал, что так норм

Olegacat- Автор вопроса
dencelman Р
в обьекте? или ты имеешь ввиду экземпляр класса?

У меня прям в объекте будет лежать объект коммента. И получается просто для реплаев создать переменную реплай айди для компента, которому отвечаешь. И уже от этой переменной писать функции. Типа если есть, то появляется слово реплай и комментарий сдвигается вправо

Olegacat
Уже это все готово, для постов. Просто тут именно ...

если не было никакой проблемы а просто ты спрашиваешь норм ли - опирайся на два критерия - 1 работает ли ЭТО так как нужно 2 сможешь ли ты развивать, масштабировать нормально ЭТО если ты хочешь узнать как делают другие - начни чекать репы на ГИТЕ реальных или тестовых проектов

Olegacat- Автор вопроса
dencelman Р
если не было никакой проблемы а просто ты спрашива...

Согласен, поищу, что-нибудь на гитах, чтобы посмотреть другие варианты

ну я бы хранил их просто в линейной структуре типа Record<string | Comment> где каждый комент имеет ид родителя и дату создания в unixTime (в виде числа) дата создания/обновлениия нужна для сортировки коментариев, если у родителя несколько дочерних коментариев, что бы с массивами не возюкаться вообще Родителем может быть как ПОСТ , так и другой комментарий Просто в плоской структуре легко данные редактировать, особенно если это объект а не массив а если в виде дерева хранить, то как его редактировать, если он аж на 5 уровне вложенности? да еще и выполняя требования реакта к иммутабельности состояний а линейная структура позволяет легко это дело хранить, редактировать и можно по ней быстро дерево коментов с неограниченной вложенностью воссоздать.

Olegacat- Автор вопроса
Rain
ну я бы хранил их просто в линейной структуре типа...

Спасиииибо, вот это интересно, посмотрю, как лучше линейно сделать

Olegacat
Спасиииибо, вот это интересно, посмотрю, как лучше...

Чтобы удовлетворить требования React к иммутабельности состояний, вы можете использовать методы, такие как spread-оператор и методы массивов, для создания новых объектов комментариев при добавлении, редактировании или удалении комментариев. Это позволит вам изменять состояние вашего приложения без изменения исходных данных.

Olegacat- Автор вопроса
Rain
ну я бы хранил их просто в линейной структуре типа...

Василий, правильно ли я понял, что при линейной структуре, будут линейные комментарии. Потому-что моя цель, сделать древо с первым уровнем, как у вк

Olegacat
Василий, правильно ли я понял, что при линейной ст...

А я ни разу в жизни VK не пользовался и ничем похожим )) а вообще структура называется линейной, потому что не имеет вложенных сущностей в такой струтктуре легко хранить данные или по ней искать информацию в нее можно и обыный списко комментариев засунуть, а можно и дерево. главное что хранить их будет удобно и редактировать

Похожие вопросы

Обсуждают сегодня

Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
А чем вам питонисты не угодили?😂
.
79
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Всем здравствуйте! Я хотел узнать сколько стоит средняя месячная зарплата у Electron js разработчиков? Мне очень это важно и нужно, плиз помогите узнать эту инфу! Для Джунио...
U.K.
10
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
77
А дин типизация это хорошо или плохо?
Alexey
12
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Исходники плюс документация? Вы гоните)) демок хватит всем
zamtmn
11
Карта сайта