SQLAlchemy类别列

3
我正在使用SQLAlchemy数据库存储Flask应用程序的数据。我想要在我的数据库中有一个列表示一个类别(例如,可能的类别可以是A、B或C)。

据我所见,文档中介绍可以通过简单的关系来实现这一目标,涉及到两个表的联系。第一个表包含一些实时数据(包括类别ID和类别),第二个表将类别ID与相应的类别相关联。 http://flask-sqlalchemy.pocoo.org/2.3/quickstart/#simple-relationships

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

此外,如果我的类别名称永远不会更改,那么使用常量类别名称列表与输入数据进行比较以验证它是否正确的方式是否是不好的实践?如果是,为什么?


3
你似乎把SQL和Python的问题混淆了。至于你关于SQL的建议/问题,这听起来像是一个相当标准的关联类别的方法。 - Tim Biegeleisen
1个回答

3
这更像是一个SQL问题,与Python无关。 无论如何,最好使用参考表格,就像您最初建议的那样。 在这种情况下,使用具有一对多关系的“分类”表。 这使您可以更改类别名称,并丰富具有更多细节(例如描述)的类别,这在未来可能变得有用。 另一种方法,使用常量列表,被认为是不好的做法 - 特别是使用枚举。 您可以在这篇文章中了解更多信息: MySQL的ENUM数据类型为什么很糟糕的8个原因 。 您可以在此处了解有关此困境的更多信息 希望这可以帮助您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接