jmoiron / modl

golang database modelling library
MIT License
479 stars 48 forks source link

Set constraints on tables #15

Open aybabtme opened 10 years ago

aybabtme commented 10 years ago

It would be great if we could set contraints on tables. For instance, something like this:

type Program struct {
    ID          string    `db:"program_id"`
    // ... stuff
}

type Exec struct {
    ID     string `db:"exec_id"`
    ProgramID string `db:"program_id"`
}

func (r Exec) registerTable(dbMap *modl.DbMap) {
    execTbl:= dbMap.AddTable(r, "exec").SetKeys(false, "exec_id")
    execTbl.SetForeignKey("program_id", Program{}.ID). // what i'd like
        OnDelete(modl.Cascade).  // going the extra mile
        OnUpdate(modl.Restrict)
}