我正在使用SQLAlchemy数据库保存烧瓶应用程序的数据。我希望数据库中的一列代表一个类别(例如,可能的类别可能是A,B或C)。
我在文档中看到,这可以通过将两个表关联起来的简单关系来实现。一个表用于保存一些实时数据(包括类别ID和类别),而另一个表用于将类别ID与关联的类别相关联。 http://flask-sqlalchemy.pocoo.org/2.3/quickstart/#simple-relationships
在我的数据库中包括某种“类别”列时,该方法是否被视为一种好习惯?还是有更简单/更好的方法。在这种情况下,我的目标是在保持良好实践的同时优先考虑简单性(如果过于复杂,则不需要最佳实践)。
此外,如果我的类别名称永远不会改变,那么使用恒定的类别名称列表来比较输入数据以进行验证是否是不明智的做法?如果是这样,为什么?
答案 0 :(得分:2)
这更多是一个SQL问题,与Python根本无关。
无论如何,实际上最好像您最初建议的那样使用参考表。
在这种情况下,具有一对多关系的Category
表。这样,您可以更改类别名称,并为类别添加更多将来可能有用的详细信息(例如描述)。
使用常量列表的另一种方法被认为是不好的做法-尤其是使用枚举。您可以在本文中阅读有关此内容的更多信息:8 Reasons Why MySQL's ENUM Data Type Is Evil
您可以了解有关here这个难题的更多信息。
希望有帮助。