ФорумРазработкаБазы данных → Report/Share

Report/Share

  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 2 июля 2015 г. 5:36

    Посоветуйте эффективную структуру для реализации репостов/шаринга. Чтобы в один запрос получать ленту от друзей, включая расшаренные сообщения.

    Дубль на SO: Структура для repost/share [ru.stackoverflow.com]
    Желаемая основа для базы (но можно портить): SQL Fiddle | A tool for easy online testing and sharing of database problems and their solutions. [sqlfiddle.com]

    ιιlllιlllι унц-унц
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 2 июля 2015 г. 6:04, спустя 28 минут 1 секунду

    SQL Fiddle | A tool for easy online testing and sharing of database problems and their solutions. [sqlfiddle.com]#!9/85386/1 не работает, пишет все время "Please build schema." и "Loading..."

    Спустя 72 сек.

    Посоветуйте пожалуйста красивое и не слишком дорогое решение через один SQL-запрос.

    Интересует только выгрузка ленты за один запрос?

    adw/0
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 2 июля 2015 г. 6:07, спустя 3 минуты 1 секунду

    Такое случается. Попробуй позже зайти. Я прямо сейчас вижу:
    Alt text

    Спустя 51 сек.

    Да, интересует только выгрузка ленты за один недорогой запрос.

    ιιlllιlllι унц-унц
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 2 июля 2015 г. 6:09, спустя 1 минуту 47 секунд

    Да, загрузилось, я тоже теперь вижу

    Спустя 209 сек.

    Как я понял, если человек "репостит" сообщение, то у него появляется копия этого сообщения, и это уже ничем не отличается вывода ленты от друзей

    Во вконтакте или плюсе, если я репостю, то у меня свой каунтер лайков, своя лента комментариев, я могу его редактировать. Т.е. это точно копия сообщения

    adw/0
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 2 июля 2015 г. 6:48, спустя 39 минут 14 секунд

    Ну по крайней мере обладает некоторыми атрибутами сообщения.

    В фейсбуке тоже свой счетчик лайков и свои коменты. При расшаривании можно добавить свой текст, он будет предварять расшаренный контент, а сам контент править нельзя — помоему это признак, что это не буквально копия, а таки пост со ссылкой. Типа: SQL Fiddle | A tool for easy online testing and sharing of database problems and their solutions. [sqlfiddle.com]

    ιιlllιlllι унц-унц
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 2 июля 2015 г. 15:06, спустя 8 часов 17 минут 54 секунды

    Чтобы оживить тему, перечислю варианты которые вижу:

    1. Содержимое оригинала буквально копируется в новое сообщение. Ссылка на оригинал только для информации.
      +: Простой запрос на выборку, -: Изменение оригинала ведет к необходимости изменять репосты.
    2. Сообщение с репостом это обычное сообщение со своим контентом, но дополнительно содержит ссылку на оригинал.
      +: Оригинальный контент всегда актуален, автор репоста редактирует только своё. -: Дополнительный открытый джойн в запросе
    3. Отдельная ссылочная таблица для построения ленты (ид хозяина ленты; дата; ид сообщения).
      +: ???, -: Лишняя таблица и джойн в запросе на выборку

    На самом деле схема усложняется еще медиа-файлами, прикреплнными к сообщению. Допустим Вася запостил картинку: это запись в таблице сообщений + запись в таблице файлов со ссылкой на сообщение. Петя расшаривает васино сообщение:

    • если мы берем вариант 1, то надо скопировать васин текст в петино сообщение и продублировать васины записи о файлах, чтобы новое сообщение владело своими файлами.
    • если вариант 2, у нас работает ссылка на оригинал, а файлы принадлежат оригиналу, т.е. не дублируются.
    • вриант 3: есть две записи в таблице ленты, васина и петина. Обе ссылаются на васино сообщение. Файлы ссылаются на сообщение и их копировать незачем.
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 2 июля 2015 г. 15:09, спустя 2 минуты 53 секунды

    джойн в запросе

    @artoodetoo, если точишь под heavy load, то джойны нельзя использовать (ну или совсем хитро).

    я бы пошел по пути сниппетов. фактически твой репост это обычное сообщение + meta [messageID], который отдельно выбирается в "глубь."

    Сапожник без сапог
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 2 июля 2015 г. 15:23, спустя 14 минут 22 секунды

    Нет, я вообще скептически отношусь к "высоконагруженным приложениям". О них любят поговорить, а в реальности это удел немногих.

    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 2 июля 2015 г. 15:25, спустя 1 минуту 54 секунды

    @artoodetoo, ну скажем так, я бы отказался сразу от джойнов и тп. вот вариант со сниппетами это тема. их может быть дохуя и их можно миксовать :)

    они могут быть динамические например. в общем какт так

    Сапожник без сапог
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 2 июля 2015 г. 15:36, спустя 10 минут 26 секунд

    я бы пошел по пути сниппетов. фактически твой репост это обычное сообщение + meta [messageID], который отдельно выбирается в "глубь."

    Не знаю такой терминологии. Джанго-хуянго? Это что-то из области Представления? Как отображается на базу?

    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 2 июля 2015 г. 15:41, спустя 4 минуты 47 секунд

    @artoodetoo, мне тяжело что такое сниппет. зайди в slack покажу :)

    Сапожник без сапог
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 3 июля 2015 г. 3:49, спустя 12 часов 7 минут 54 секунды

    реклама детектед

    ιιlllιlllι унц-унц
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 3 июля 2015 г. 5:44, спустя 1 час 55 минут 40 секунд

    Короче говоря, для текущего проекта я выбрал вариант 2, который показан в http://pyha.ru/forum/topic/9100.1#msg200607
    По совокупности факторов: надо отдельный текст для расшаривающего — отпал вариант 3, прикрепленные медиа — с вариантом 1 получается как-то замороченно.

    Вроде работает ОК, по производительности будет понятно по мере роста, если упрусь, буду что-то менять
    Feed

    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 3 июля 2015 г. 6:09, спустя 24 минуты 29 секунд

    нунихуя ты крутой

    Сапожник без сапог
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 3 июля 2015 г. 6:18, спустя 9 минут 28 секунд

    сарказм оценил. да я молодец.

    ιιlllιlllι унц-унц

Пожалуйста, авторизуйтесь, чтобы написать комментарий!