SQLalchemy-Nachschlagetabellen

Hallo, ich habe eine Tabelle in 3NF-Form

ftype_table = Table(
    'FTYPE',
    Column('ftypeid', Integer, primary_key=True),
    Column('typename', String(50)),
    base.metadata,
    schema='TEMP')
file_table = Table(
    'FILE',
    base.metadata,
    Column('fileid', Integer, primary_key=True),
    Column('datatypeid', Integer, ForeignKey(ftype_table.c.datatypeid)),
    Column('size', Integer),
    schema='TEMP')                                                                

und Mapper

class File(object): pass
class FileType(object): pass
mapper(File, file_table, properties={'filetype': relation(FileType)})
mapper(FileType, file_table)

Angenommen, die F-Typ-Tabelle enthält 1: TXT 2: AVI 3: PPT

Was ich tun möchte, ist das folgende, wenn ich ein Dateiobjekt wie dieses erstelle:

file=File()
file.size=10
file.filetype= FileType('PPT')
Session.save(file)
Session.flush()

ist, dass die Datei-Tabelle Datei-ID enthält: xxx, Größe: 10,Datentyp-ID: 3

Leider wird ein Eintrag zur FileType-Tabelle hinzugefügt und diese ID wird an die File-Tabelle weitergegeben.

Gibt es eine clevere Möglichkeit, dies mit sqlalchemy zu erreichen, ohne eine Abfrage in der FileType-Tabelle durchführen zu müssen, um festzustellen, ob der Eintrag vorhanden ist oder nicht?

Vielen Dank

Antworten auf die Frage(3)

Ihre Antwort auf die Frage