Relationer
Relationer mellan register kan användas för att skapa smidiga kopplingar mellan fält i separata register.
Last updated
Relationer mellan register kan användas för att skapa smidiga kopplingar mellan fält i separata register.
Last updated
Först vill jag definera hur relationerna mellan dessa ska se ut, för att göra detta måste vi först veta vilka typer av relationer som finns.
One to One - EN rad i ett register är relaterad till EN rad i ett annat register
One to Many - EN rad i ett register är relaterad till FLERA rader i ett annat register Exempel: En författare kan skriva flera böcker.
Many to One - FLERA rader i ett register är relaterade till EN rad i ett annat register Exempel: Flera böcker kan ha samma författare.
Many to Many - FLERA rader i ett register är relaterade till FLERA rader i ett annat register Exempel: På en skola finns elever och lärare, en many to many relation kan användas för att besktiva vilka elever som har vilka lärare och eventuella överlapp mellan grupperna.
För att få beteenden i ovan nämnda exempel går jag först in i "Författare" registret och skapar ett nytt fält. Fär att se till att relationen Många-till-en relationen är korrekt i det här fallet kan vi läsa inställningarna som följande: Namn - Typ - Registret vi står i Böcker - Många-till-en - Författare Detta skapar beteendet "En författare kan skriva flera böcker", jag gör även likadant mellan böcker och publiceringsbolagen.
Detta skapar ett fält i "författare" registret som innehåller en array av böcker, och ett fält i "bok" registret som innehåller en författare. Och går jag för att skapa en ny författare finns befintliga böcker i "bok" registret som förslag för fältet. Se bild nedan
Detta skapar en författare med alla markerade böcker i en array på detta viset:
Och uppdaterar alla berörda böcker på följande vis:
För att skapa beteendet från Flera-till-flera exemplet skapar jag registrena "elever" och "lärare", jag ger dem bägge ett enkelt titelfält.
Nu i ett av registrerna skapar jag ett relationsfält, i mitt fall har jag valt "lärare" registret. Detta fält konfigurerar jag på följande vis: (Det går lika bra att skapa relationen från båda hållen, se bara till att ge fälten rätt namn beroende på var du skapar relationen)
Lärare och elever kan nu skapas och en lista med ellever respektive lärare kan anges vid skapande. Jag har skapat fäljande elever och lärare sett från "elev" registret:
Samma data sett från "lärare" registret:
Transformation för mer läsbart result:
Nu kan jag exempelvis söka på vilka lärare som har ElevA i effekten. Se config nedan, jag har för exemplets skulle hårdkodat in _id på ElevA: