Вместо использования ORM, я рассматриваю следующий подход в Python и MySQL без ORM (SQLObject/SQLAlchemy). Я хотел бы получить некоторые отзывы о том, что это, вероятно, имеет какие-либо негативные долгосрочные последствия, поскольку в краткосрочной перспективе кажется ясным из того, что я могу сказать.Это хороший подход, чтобы избежать использования SQLAlchemy/SQLObject?
Вместо того, чтобы перевести строку из базы данных в объект:
- каждая таблица представлена классом
- строка извлекается как Dict
объект, представляющий курсор обеспечивает доступ к столу таким образом:
cursor.mytable.get_by_ids (низкий, высокий)
удаление означает установку time_of_removal к текущему времени
Так по существу это избавляет от необходимости ОРМ, поскольку каждая таблица имеет класс для представления его и внутри этого класса, отдельный ДИКТ представляет каждую строку.
Отображение типов тривиально, потому что каждый dict (row), являющийся объектом первого класса в python/blub, позволяет вам узнать класс объекта и, кроме того, низкоуровневая библиотека базы данных в Python обрабатывает преобразование типов в уровень поля в соответствующие типы приложений.
Если вы видите какие-либо потенциальные проблемы с спуском по этой дороге, пожалуйста, дайте мне знать. Благодарю.
Ну, в основном я не хочу, чтобы изучить все входы и выходы из ОРМ, особенно когда мне не нужно 90% функциональности, что она определяет. По той же причине я предпочитаю использовать Блокнот над Microsoft Word большую часть времени. – tirus
Ну, тогда не узнайте, что 90%. По-прежнему поразительно полезно иметь его, если вам когда-нибудь понадобится. Кстати, говоря о редактировании текста, я имел примерно такое же отношение, когда я пробовал Вима; Я достаточно научился передвигаться и набирать, и это было о нем. Но я продолжал находить более продвинутые вещи, которые хотел сделать, ушел, чтобы научиться эффективно их выполнять, и теперь я ниндзя Вима. А Vimja, если хотите. – Eevee
Существуют значительные преимущества использования зрелой ОРМ, такой как зрелая, хорошо протестированная и хорошо документированная. Повторное использование колеса означает, что вы начинаете с нуля, и снова, и все, кто забирает ваш код, теперь, как узнать свой ORM, но без большой документации и учебников. – Soviut