Я столкнулся с небольшой дилеммой при создании схемы и настройке моей базы данных "правильным" способом. У меня есть коллекция, содержащая объекты, содержащие 4 разных массива. Объекты в записях коллекции выглядят примерно так:
itemInCollection{
...
theObj: {arr1: ["user1685", "user5342"], arr2: ["user1432"], arr3: [], arr4: ["user1632", "user2312", "user6452"]},
...
}
Схема, которую я сделал, уже требует, чтобы все элементы массива были уникальными, но я также хочу, чтобы ни один из массивов не содержал ту же запись, что и другой. Мне также нужно иногда перемещать элемент, который уже находится в одном массиве, в другой массив (и, конечно, удалять запись из старого массива, потому что ни один из массивов не должен содержать одну и ту же запись). Очевидно, это не лучший способ отслеживать что-то подобное, или нет?
На данный момент у меня есть 4 запроса, которые проверяют каждый массив отдельно для определенной записи, и еще один запрос, который добавляет запись в соответствующий массив, если запись не найдена... и ДРУГОЙ запрос, который удалит запись, которая могла быть найдена в другом, прежде чем добавлять его в другой массив.
Есть ли лучший способ настроить базу данных для отслеживания чего-то подобного? Или есть динамический способ запроса нескольких массивов вместо использования 6-7 разных запросов?
Заранее всем спасибо за ваше время и помощь :)