я такую схему придумал
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
}
}
Я написал примерно нормально ли создать объект с комментами внутри объекта поста.
Посты работают, посты прекрасно выводятся и комментарии спокойно сделаю, просто хочу понять, кто-то делает по другому или это подходит?
И плохой ли это вариант?
Добавить уникальный идентификатор для каждого комментария. Добавить поле для даты и времени создания комментария. Добавить поле для имени автора комментария. Рассмотреть возможность хранения комментариев в отдельной таблице. Обновить код для учета внесенных изменений.
Это я знаю, просто объект в объекте, норм так делать для поста?
Рад помочь
Лучше не слушай данного Кента Он портянки из чат жпт кидает (:
сделай врапер-обёртку класс для каждого обьекта (комент, пост) в который ты будешь ложить данные с бека, и там же логику работы с этими обьектами пропиши
Уже это все готово, для постов. Просто тут именно нету представления норм ли так. Но уже готово. И вопрос, как вы реализовывали бы replay в объекте?
в обьекте? или ты имеешь ввиду экземпляр класса?
Да, спасибо, я так и думал, что так норм
У меня прям в объекте будет лежать объект коммента. И получается просто для реплаев создать переменную реплай айди для компента, которому отвечаешь. И уже от этой переменной писать функции. Типа если есть, то появляется слово реплай и комментарий сдвигается вправо
если не было никакой проблемы а просто ты спрашиваешь норм ли - опирайся на два критерия - 1 работает ли ЭТО так как нужно 2 сможешь ли ты развивать, масштабировать нормально ЭТО если ты хочешь узнать как делают другие - начни чекать репы на ГИТЕ реальных или тестовых проектов
Согласен, поищу, что-нибудь на гитах, чтобы посмотреть другие варианты
ну я бы хранил их просто в линейной структуре типа Record<string | Comment> где каждый комент имеет ид родителя и дату создания в unixTime (в виде числа) дата создания/обновлениия нужна для сортировки коментариев, если у родителя несколько дочерних коментариев, что бы с массивами не возюкаться вообще Родителем может быть как ПОСТ , так и другой комментарий Просто в плоской структуре легко данные редактировать, особенно если это объект а не массив а если в виде дерева хранить, то как его редактировать, если он аж на 5 уровне вложенности? да еще и выполняя требования реакта к иммутабельности состояний а линейная структура позволяет легко это дело хранить, редактировать и можно по ней быстро дерево коментов с неограниченной вложенностью воссоздать.
Спасиииибо, вот это интересно, посмотрю, как лучше линейно сделать
Чтобы удовлетворить требования React к иммутабельности состояний, вы можете использовать методы, такие как spread-оператор и методы массивов, для создания новых объектов комментариев при добавлении, редактировании или удалении комментариев. Это позволит вам изменять состояние вашего приложения без изменения исходных данных.
Я могу вам прислать пример в лс напишите
Василий, правильно ли я понял, что при линейной структуре, будут линейные комментарии. Потому-что моя цель, сделать древо с первым уровнем, как у вк
Было бы супер, пожалуйста
Вы мне написали в лс?
А я ни разу в жизни VK не пользовался и ничем похожим )) а вообще структура называется линейной, потому что не имеет вложенных сущностей в такой струтктуре легко хранить данные или по ней искать информацию в нее можно и обыный списко комментариев засунуть, а можно и дерево. главное что хранить их будет удобно и редактировать
Обсуждают сегодня