У меня есть общий вопрос структуры базы данных. В моем сценарии я использую mongodb.
Я создаю приложение, в котором пользователь может загружать список песен (название, исполнитель и т.д.), но я не уверен, что мне нужно иметь одну коллекцию songList для всех пользователей или отдельную коллекцию songList.user # для каждого индивидуальный пользователь. Пользователи могут только запрашивать связанные с ними песни, поэтому пользователь A НИКОГДА не будет знать о песнях пользователя B.
Примеры кода:
Несколько коллекций на пользователя
db.songList.userA.find()
{"title": "Some song of user A", "artist": "Some artist of user A"}
db.songList.userB.find()
{"title": "Some song of user B", "artist": "Some artist of user B"}
- Pros
- Меньший размер коллекции для запроса
- Cons
- ремонтопригодность
- 1000 пользователей означают 1000 коллекций
- ремонтопригодность
vs single collection с полем "пользовательское" пользователя
db.songList.find({"user":"A"})
{"title": "Some song of user A", "artist": "Some artist of user A", "user": "A"}
- Pros
- Гибкость запросов к пользователям в случае необходимости
- Cons
- Производительность
Я пытаюсь создать список pro/con, но все же на заборе. Учитывая, что каждая песня пользователя будет изолирована друг от друга, какой подход лучше? Моя главная задача - обслуживание и выполнение запросов.
Спасибо заранее.