Comment un modèle "UNIQUE" contrainte de SQLAlchemy?

Je suis en train d'écrire un Flacon/SQLAlchemy application dans laquelle j'ai des utilisateurs et des groupes.

Les utilisateurs peuvent appartenir à plusieurs groupes, et ils ont un numéro unique au sein de chaque groupe. Leur demander comment le modèle de la base de données M'a conseillé d'utiliser la structure de table suivante pour mes nombreux à plusieurs relations:

TABLE UserGroups
  GroupID 
  UserID
  UserNumber
  PRIMARY KEY (GroupID, UserID)
  UNIQUE (GroupID, UserNumber)
  FOREIGN KEY (GroupID)
    REFERENCES Groups (GroupID)
  FOREIGN KEY (UserID)
    REFERENCES Users (UserID)

Maintenant, je sais comment créer une plusieurs-à-plusieurs relations avec SQLAlchemy, mais je ne sais pas comment représenter les UNIQUE contrainte supplémentaire UserNumber champ.

Je n'ai pas beaucoup d'expérience avec la conception de base de données, Formulaires et SQLAlchemy, ce qui peut être évident, mais je ne peux pas trouver un moyen de l'exprimer.

Sur des choses que je ne comprends pas: à l'aide d'un régulier de plusieurs-à-plusieurs relations, mon User classe a un forme de liste attribut groups qui contient tous les groupes dont il fait partie, mais ce masque totalement la UserGroups de rejoindre la table et je ne sais pas comment accéder à la UserNumber champ.

Tout cela est un peu flou pour moi. - Vous avez un bon exemple ou des explications sur la façon de faire une telle chose avec SQLAlchemy ?

OriginalL'auteur ereOn | 2013-01-16