我使用 peewee 作为 mysql DB 的 ORM。 我的方案中有 3 张表,一张用于设备,一张用于应用程序,一张用于每个设备每个测试应用程序和测试应用程序的结果。 APPS 表如下所示:
package name | version name | version code |apk name
前 3 列是我的主键,因为我想要表中的每个修订版本,并且希望能够根据特定版本代码轻松过滤应用程序(版本代码随着 git\svn 中的修订版本而增加,而版本名称代表版本本身取自开发分支)。 当我想要将 APPS 表作为 TESTS 表的引用表时,我的问题就开始了,这意味着每个测试都会引用 APPS 两次,一次针对测试人员,一次针对测试的应用程序。 我不确定在我的 TESTS 表中使用 3 个字段的外键(使其成为 6 个!)是否是一个好主意。
有什么好的解决办法吗? 我尝试添加自动增量的 _ID 字段作为“KEY”,这样我就可以访问一个数字单个字段,但 ORM 并不真正支持它,我有点咬牙切齿地试图解决这个问题。 p>
我的 Db 是组织不好还是我需要简单地替换 ORM ?我认为如果没有 ORM,我可能会很容易地完成它......
最佳答案
选项:
- 在
APPS
表中定义自动递增主键。 - 在
pkg
、ver
和APPS
表中定义复合唯一键vcode
列。 - 使用该表的主键值作为child中的FK引用 表。
关于mysql - CompositeKey 作为 peewee 与 mysql 的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21814792/