sql - SQLAlchemy 类别列
问题描述
我正在使用 SQLAlchemy 数据库来保存烧瓶应用程序的数据。我希望我的数据库中的一列代表一个类别(例如,可能的类别可能是 A、B 或 C)。
我在文档中看到,这可以通过关联两个表的简单关系来实现。一个表保存一些实时数据(包括类别 ID 和类别),另一个表将类别 ID 与关联的类别相关联。http://flask-sqlalchemy.pocoo.org/2.3/quickstart/#simple-relationships
这种方法是否被认为是在我的数据库中包含某种“类别”列的好习惯?或者有没有更简单/更好的方法。在这种情况下,我的目标是在保持良好实践的同时优先考虑简单性(如果需要太多复杂性,则不需要最佳实践)。
此外,如果我的类别名称永远不会改变,那么使用类别名称的常量列表来比较输入数据以验证它是不是不好的做法?如果是这样,为什么?
解决方案
这更像是一个 SQL 问题,根本与 Python 无关。
无论如何,实际上最好使用您最初建议的参考表。
在这种情况下,一个Category
具有一对多关系的表。这允许您更改类别名称,并使用将来可能有用的更多详细信息(如描述)来丰富类别。
另一种方式,使用常量列表,被认为是一种不好的做法——尤其是使用枚举。您可以在本文中阅读更多相关信息:MySQL 的 ENUM 数据类型邪恶的 8 个原因
您可以在此处阅读有关此困境的更多信息。
希望能帮助到你。
推荐阅读
- r - 如何从混淆矩阵预测中得到满足的结果
- java - 在 android studio 中创建一个固定大小的圆形视图
- angular - Angular 6 错误:ValidatorFn 期望返回一个承诺
- python - 未找到朋克
- javascript - 单击时滚动到页面底部,使用 JavaScript,而不是 JQuery
- java - 在不与远程仓库同步的情况下离线使用 maven 的最佳方法是什么?
- c++ - 没有语法错误,但我的程序显示奇怪的数字
- java - 当数据库中存在记录时查询 AuditEntity 时出现 javax.persistence.EntityNotFoundException
- android - 手机横屏时,Android在敬酒后完成
- javascript - 循环嵌套的对象数组