@kolyazapoteev

Как при работе с MongoDB стандартизировать коллекции?

Вводная
Решил написать примитивную RPG. В частности, поскольку подразумевается "большое" количество неоднородных предметов (оружие, зелья, броня и.д.), которые, при этом, должны будут принадлежать пользователю, в качестве базы данных решено было использовать монгу.


До этого работал только с SQL-базами, поэтому интересует вопрос - принято ли на уровне кода описывать структуры коллекций? Если да, то какие есть инструменты для этого?
Пока-что есть идея использовать pydantic для предварительной формализации данных.

Пример
class DefaultModel(BaseModel):
    name: str


class Item(DefaultModel):
    price: float
    weight: float
    description: str


class Weapon(DefaultModel):
    damage: int


class User(DefaultModel):
    level: int = 1
    inventory: List[Weapon | Item]


Валидный ли это подход или есть что-то более подходящее.
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
Да, принято. Без этого, фактически, с Монгой вообще работать невозможно.
Больше того, учитывая, что (в отличие от нормальных баз данных) имена ячеек всегда хранятся вместе с данными (то есть дублируются столько раз, сколько документов хранится базе), то у монгеров принято давать ключам имена из одной-двух букв для экономии памяти. И эти сокращения тоже надо потом транслировать в человеческие имена. То есть база данных для работы с базой данных становится не прихотью, а жизненной необходимостью.

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

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

Флаг в руки и барабан на шею. Безумству храбрых поем мы песню.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы