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

Всем привет) есть вопрос, скорее по БД, Есть сущности: Пользователь,

Сборка(слов), Слово
У пользователей может быть несколько сборок, у сборок может быть несколько слов
Пользователь может добавлять в избранное сборки и слова, сколько угодно, хоть все слова в сборке.
Есть еще функционал, пользователь может делиться своими сборками с др пользователями, другие пользователи могут добавлять в избранное сколько угодно слов из чужих сборок(которыми поделились с этими юзерами). Как лучше организовать в таком случае? копировать сборки не вариант, тк слов может быть и 200 в одной сборке.

Интересует момент именно с добавлением в избранное слов из чужих сборок. Как лучше организовать в БД? Мб кто сталкивался с подобным

12 ответов

12 просмотров

Ключ это слово, а значение это массив пользователей у которых это слово есть ?)

Mihail-Grushetckii Автор вопроса
vbbbb
Ключ это слово, а значение это массив пользователе...

Связь сборки и слов - один ко многим. Слово - это сущность, то есть это не просто 1 слово, включает в себя id, слово, его перевод, добавлено ли в избранное

Никак не могу понять в чём особенность Есть словарь слов, пользователи хранят ссылки на слова

Алексей Попов
Никак не могу понять в чём особенность Есть слова...

Точка входа где? Он имеет ввиду. Слово? Начало обьекта

Mihail-Grushetckii Автор вопроса
Алексей Попов
Никак не могу понять в чём особенность Есть слова...

это карточки для запоминания иностранных слов, которая содержит слово на родном языке, ее перевод

Mihail Grushetckii
это карточки для запоминания иностранных слов, кот...

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

Mihail-Grushetckii Автор вопроса

ну вот такой момент, пример: у меня есть 5 сборок по 200 слов (1000слов), я поделился с 5 юзерами, в теории каждый юзер может добавить себе любое слово в избранное(максимум 1000 из моих сборок), получается организую таблицу связей с юзера со словами, получаю 5000 строк. Но если у меня будет 100 сборок(по 200 слов) и я поделюсь с 50 юзерами. Получится 20 000 слов * 50 юзеров = 1млн записей но не только я могу делиться) таких, как я может быть и 1000 человек) не будет ли это нагромождением?

Mihail Grushetckii
ну вот такой момент, пример: у меня есть 5 сборок ...

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

Mihail-Grushetckii Автор вопроса
Алексей Попов
А сборка может модифицироваться? Если нет, достато...

вопрос больше в другом, как мне кажется) нужен будет функционал - достать все избранные слова (для данного пользователя) из данной сборки, или вообще из всех сборок, то есть нужно хранить информацию о том, какие слова в сборе находятся в избранном у данного пользователя, я поделился с 10 юзерами одной сборкой, но каждый сам решает, какие слова добавить в избранное

Mihail Grushetckii
вопрос больше в другом, как мне кажется) нужен буд...

Так а проблема в чём? Ты не можешь нарисовать структуру бд, или боишься того, что у тебя будет много записей в таблицах? Если второе, то не бойся :)

Mihail-Grushetckii Автор вопроса
Алексей Попов
Так а проблема в чём? Ты не можешь нарисовать стру...

мб есть смысл в таблице связей юзер - слово добавлять только избранные слова? то есть, когда юзер добавляет в избранное не менять флаг true/false, а добавлять удалять запись в таблице? с точки зрения длительности запроса хуже, но ситуации, когда юзер добавит все слова из сборки в избранное практически исключены

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
Всем вечера. Подскажите как лучше сделать. делаю на Д10 Например будет база данных на SQLite. в ней будет много таблиц. более 50шт Типа справочник. Содержать ID Name Id p...
Андрей Т 🐎
10
Я короче решил скомпилировать Nim в js, я думал он сработает как обычный транслятор. По итогу он мне создал файл с расширением js, и туда поместил кучу кода Вопрос, что это з...
𝕾𝖍𝖆𝖉𝖊 <suspense>
9
Всем здравствуйте!) У меня такой вопрос. Есть два роута, роут1 и роут2. Они связаны с очередью some_queue. По задаче предполагается, что есть два паблиша. Паблиш1 отправляет...
Format
10
это группа токсиков или тех кто помогает?
Ибрагим
9
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
мы пытаемся подменить функцию, которая имеет меньше инструкций относительно функции, которой подменяем. https://www.reddit.com/r/jailbreakdevelopers/comments/w06ujy/mshookfun...
Óðinn
6
Карта сайта