mysql - CompositeKey 作为 peewee 与 mysql 的外键

标签 mysql python-2.7 foreign-keys peewee

我使用 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,我可能会很容易地完成它......

最佳答案

选项:

  1. APPS 表中定义自动递增主键。
  2. pkgverAPPS 表中定义复合唯一键 vcode 列。
  3. 使用该表的主键值作为child中的FK引用 表。

关于mysql - CompositeKey 作为 peewee 与 mysql 的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21814792/

相关文章:

mysql - 按多个字段进行 groupBy 时计算行数

python - 基于多个条件的重复数据删除 python 列表

mysql - 具有外部约束的sql查询

mysql根据字段值自定义用户权限

php - Mysql权限更新错误。

java - 不要在java jsp中添加到数据库

Python CSV编辑数字大于特定数字的字段

python - 想在python中分离 float 的整数部分和小数部分

PostgreSQL:对可选插件执行 1:1

mysql - 外键-暂时绕过?