我用peewee作爲我的ORM的MySQL數據庫的外鍵。 我在我的計劃中有3個表格,一個用於設備,一個用於應用程序,另一個用於每個測試儀應用程序和測試應用程序的每個設備的結果。 的APPS表如下所示:CompositeKey在peewee與MySQL
package name | version name | version code |apk name
3個第一列是我的主鍵,因爲我想在我的表中的每個版本,我想它很容易根據某些版本的代碼對應用進行過濾(版本號遞增在git \ svn中進行修訂,而版本名稱代表從開發分支中取得的版本本身)。 我的問題開始時,我希望有APPS表作爲我的測試表中的參考表,這意味着每個測試指的是APPS兩次,一次用於測試,一次用於測試應用程序。 我不確定在我的TESTS表中是否有3個字段的外鍵(這使得它爲6!)是一個好主意。
任何好的解決方案呢? 我嘗試添加_ID字段自動遞增爲「KEY」因此我有一個數字單場訪問,但ORM並沒有真正支持它,我有點咬緊我的牙試圖拉這一關。
是我的Db組織糟糕,或者我需要簡單地更換ORM?我認爲,如果沒有的ORM我可能把它關閉,很容易...
貌似對我來說是很好的解決方案!然而,任何想法如何我用peewee實現這種行爲? ,再次我可以實現我自己的解決方案,將工作在MYSQL BU我不能用peewee實現。 – codeScriber
我仍然是Python的嬰兒。不能給出它的實現的想法。 –
好吧,得到它,如果最差的情況發生,我可以使用:Apps.create_table(),它將創建自動遞增的regualr表,並且沒有contrain,然後是Apps.getdatabase()。execute('ALTER TABLE'APPS' ADD CONSTRAINT'limit_apps 'UNIQUE('pkg_name','version_name','version_code');然後我會接受你的答案,10倍! – codeScriber