2015-09-03 60 views
0

假设我有一个名为TBL_ACCOUNT的表,其中包含我的所有用户以及一个名为TBL_EMAIL_SUBSCRIPTION的表,其中包含用户订阅的订阅源。我试图让每个用户+ Feed组合只能有一个条目,因此user1只能订阅feed1一次,但user1可以同时订阅feed1和feed2。使用peewee为外键表创建唯一索引

这是我的模型看起来像:

class TBL_ACCOUNT(BaseModel): 
    USERNAME = CharField(unique=True) 
    PASSWORD = CharField() 
    EMAIL = CharField(unique=True) 

class TBL_EMAIL_SUBSCRIPTION(BaseModel): 
    USER = ForeignKeyField(TBL_ACCOUNT) 
    FEED = CharField() 

    class Meta: 
     indexes = (("USER_id", "FEED", True)) 

我也尝试过使用索引“USER”,但没有制定出作为数据库仍然收到重复。

回答

-2

这将适用于两个外键,但我不确定只有一个。

class Meta: 
    primary_key = CompositeKey("USER", "FEED") 
+0

不,这没什么帮助。亚历山大有正确的答案。该问题的作者缺少括号。请不要发布无用的,无用的评论。 – coleifer

+0

@coleifer如果我冤枉你,先生,我很抱歉。我永远不会原谅自己。 – Neil