Я использую peewee в качестве ORM для базы данных mysql. У меня есть 3 таблицы в моей схеме: одна для устройств, одна для приложений и одна для результатов на устройство для каждого тестирующего приложения и тестируемого приложения. таблица APPS выглядит так:
package name | version name | version code |apk name
3 первых столбца являются моим первичным ключом, так как я хочу, чтобы каждая ревизия была в моей таблице, и я хочу, чтобы можно было легко фильтровать приложения в соответствии с определенным кодом версии (код версии увеличивается с ревизиями в git\svn, а имя версии представляет саму версию как взято из ветки разработки). Моя проблема начинается, когда я хочу иметь таблицу APPS в качестве справочной таблицы для моей таблицы TESTS, что означает, что каждый тест ссылается на APPS дважды, один раз для тестера и один раз для тестируемого приложения. Я не уверен, что это хорошая идея иметь внешний ключ с 3 полями (что делает его 6!) В моей таблице TESTS.
Любое хорошее решение для этого? Я попытался добавить поле _ID с автоматическим увеличением в качестве «КЛЮЧА», поэтому у меня будет числовое единственное поле для доступа, но ORM на самом деле не поддерживает его, и я как бы стиснул зубы, пытаясь это сделать.
Моя БД просто плохо организована или мне нужно просто заменить ORM? я думаю, что без ORM я, вероятно, справился бы с этим довольно легко...