Zum Modell:
Angenommen Postion und Rang sind jeweils Key bzw zugehöriger Foreign Key.
Reicht es nicht aus, die Relation auf Rang/Position zwischen User und Feldliste zu setzen. Jedenfalls scheint mir die Kombi FeldID, Position in der Zwischentabelle etwas redundant. (Zumindest wenn Rang eigentlich für Feldsichtbarkeit usw. steht)
- Rang erweitern auf 3. Wert: Default (Um die Definition dieser Variante kommst Du eh nicht rum)
- Feld Postion mit in die Feldtabelle aufnehmen. Alle Definitionen (Sichtbarkeit, .. ) werden direkt je Rang vorgenommen.
- Ein User wird nur über die Position /Rang mit den Definitionen gejoined.
Letztlich wird hier ja der Rang wie eine (
DB-)Rolle gehandhabt. Eine
DB-Rolle liefert allerdings nur bei Oracle Enterprise auch Rechte auf Feldebene. Weiß nicht, ob das Enterprise das enthält oder nur Voraussetzung ist.