首页 > 解决方案 > SQLAlchemy 类别列

问题描述

我正在使用 SQLAlchemy 数据库来保存烧瓶应用程序的数据。我希望我的数据库中的一列代表一个类别(例如,可能的类别可能是 A、B 或 C)。

我在文档中看到,这可以通过关联两个表的简单关系来实现。一个表保存一些实时数据(包括类别 ID 和类别),另一个表将类别 ID 与关联的类别相关联。http://flask-sqlalchemy.pocoo.org/2.3/quickstart/#simple-relationships

这种方法是否被认为是在我的数据库中包含某种“类别”列的好习惯?或者有没有更简单/更好的方法。在这种情况下,我的目标是在保持良好实践的同时优先考虑简单性(如果需要太多复杂性,则不需要最佳实践)。

此外,如果我的类别名称永远不会改变,那么使用类别名称的常量列表来比较输入数据以验证它是不是不好的做法?如果是这样,为什么?

标签: sqlsqlalchemy

解决方案


这更像是一个 SQL 问题,根本与 Python 无关。

无论如何,实际上最好使用您最初建议的参考表。

在这种情况下,一个Category具有一对多关系的表。这允许您更改类别名称,并使用将来可能有用的更多详细信息(如描述)来丰富类别。

另一种方式,使用常量列表,被认为是一种不好的做法——尤其是使用枚举。您可以在本文中阅读更多相关信息:MySQL 的 ENUM 数据类型邪恶的 8 个原因

您可以在此处阅读有关此困境的更多信息。

希望能帮助到你。


推荐阅读