Dakle ovako. Model baze ne treba da odslikava ono kako si ti zamislio nego da odslika realni sistem. Potrebna ti je jedna jedina tabela sa popisom svih migućih funkcija (u ovom slučaju političkih) bez obzira na nivo: lokalni, podreginalni, regionalni.... Ta tabela "Funkcije" može da ima kolonu koja opredeljuje nivo. PK za tabelu "Funkcije" biće "FunkcijaID". Tabeli "Contacts" promeni PK u "ContactsID". Dodaj treću veznu tabelu "ContactsFunkcije" koja će imati složeni PK "ContactsID+FunkcijaID".
Realna činjenica je da je i druga rečenica istinita. Pogotovo što se partijska hijerarhija menja sa napredovanjem članova.
Sada poveži "Contacts" : "ContactsFunkcije" relaciom 1 : više.
Takođe poveži "Funkcije : "ContactsFunkcije" relaciom 1 : više.
Ovo će ti omogućiti da uz jednu datumsku kolonu u trećoj tabeli vodiš evidenciju o svim trenutnim funkcijama ali i o istorijatu njihovih promena.
Naravno da je ovo odgovor samo za deo oko tvog pitanja. Ozbiljan model se mora postaviti uz saznavanje pre svega granica poslovnog problema i pravila koja važe u toj oblasti.
Savet: Nikad. Ali baš nikad, nemoj da započinješ izradu ostalih objekata (forme, upiti, izveštaji...) dok nisi siguran da ti je model baze blizu savršenog.