Een relationele database plannen
Voordat u een relationele database maakt met behulp van de relatiegrafiek, ontwerpt u best uw database op papier of het scherm. In databasetermen wordt het plan dat u ontwikkelt een diagram voor de relatie tussen entiteiten genoemd.
Raadpleeg Een app op maat maken voor de algemene stappen voor het ontwerpen van een app op maat van FileMaker Pro.
Zo plant u een relationele database:
- Bepaal de categorieën van informatie die uw relationele database nodig heeft. Deze categorieën komen overeen met tabellen in FileMaker Pro.
Een verkoopdatabase heeft bijvoorbeeld deze tabellen: ‘Klanten’ waarin klantgegevens zijn opgeslagen, ‘Facturen’ waarin bestelinformatie is opslagen en ‘Producten’ waarin productinformatie is opgeslagen.
- Bepaal wat het onderlinge verband tussen de tabellen is. U kunt dit doen door eenvoudige zinnen te noteren die beschrijven hoe de categorieën met elkaar in wisselwerking staan, bijvoorbeeld "klanten bestellen producten" en "facturen bewijzen bestellingen van klanten".
- Verbind een tabel met een andere om een relatie ertussen aan te geven. Klanten kunnen bijvoorbeeld facturen hebben en facturen kunnen producten hebben.
Als een tabel geen relatie met een andere tabel heeft, hebt u die waarschijnlijk niet nodig. In dit voorbeeld past de tabel ‘Werknemers’ niet in deze relationele database.
- Geeft het soort relatie tussen tabellen aan door ze met een typerend symbool te verbinden.
- In een één-op-één-relatie komt één record in Tabel A overeen met één record in Tabel B.
- In een één-op-veel-relatie komt één record in Tabel A overeen met meerdere records in Tabel B.
- In een veel-op-veel-relatie komen meerdere records in Tabel A overeen met meerdere records in Tabel B.
Raadpleeg Relaties.
- een klant kan veel facturen hebben
- een product kan op veel facturen staan
- een factuur kan veel producten bevatten
- Tussen ‘Facturen’ en ‘Producten’ bestaat er een veel-op-veel-relatie. U kunt een veel-op-veel-relatie niet rechtstreeks tussen twee tabellen instellen.
Relationele databases verwerken rechtstreeks één-op-veel- en één-op-veel-relaties. U moet de veel-op-veel-relatie omzetten met een tussenliggende tabel die de veel-op-veel-relatie in twee één-op-veel-relaties opsplitst. Om het probleem in dit voorbeeld op te lossen, voegt u de tussenliggende tabel ‘Regels’ toe om informatie over verkochte producten op te slaan.
- een klant kan veel facturen hebben
- een factuur kan veel regels hebben
- een product kan op veel regels voorkomen
- Bepaal de velden die elke tabel nodig heeft.
Elke tabel heeft slechts één onderwerp en alle velden in een tabel beschrijven alleen dat onderwerp. De velden in één record van de tabel Klanten bevatten samen alle gegevens over één klant.
Om dezelfde reden moet u aan elke klant een uniek klantnummer toewijzen. In uw database is dit een primaire sleutel Aangezien u alleen een klantidentificatienummer in de tabel zou invoeren wanneer u een nieuwe klant toevoegt, bepaalt de aanmaak van een klantnummer de aanmaak van een record. Een tabel Klanten kan ook velden bevatten voor de naam, het adres en het telefoonnummer van de klant.
Een tabel Producten kan velden bevatten voor een productcode, de eenheidsprijs voor elk product, en de hoeveelheid in voorraad. Een tabel Artikelen kan velden bevatten voor productcodes en factuurnummers, de naam, eenheidsprijs, kwantiteit, en de totale prijs van elk verkocht product. Een tabel Facturen kan velden bevatten voor een factuurnummer, besteldatum en verkoper.
- Bepaal het primaire-sleutelveld (of velden voor een veelzijdige relatie) voor elke tabel en geef ze in uw plan aan. Geef vervolgens het refererende-sleutelveld of de velden in elke tabel aan.
In dit voorbeeld:
- zijn de primaire sleutels Klanten::Klantnummer, Facturen::Factuurnummer, Producten::Productcode en Regels::Regel-ID
- zijn de refererende sleutels Facturen::Klantnummer en Regels::Productcode
- Bepaal voor elke tabel in welke velden gegevens worden opgeslagen en in welke velden gegevens uit andere (gerelateerde) tabellen worden gebruikt.
Op basis van het onderwerp van de tabel bepaalt u waar u de gegevens het beste kunt opslaan en waar u het beste gegevens uit een gerelateerde tabel kunt gebruiken. In tegenstelling tot sleutelvelden moeten alle velden slechts één keer in uw database voorkomen. Verwijder vermeldingen van velden die niets te maken hebben met het onderwerp van de tabel.
- Verbind elke primaire sleutel met de overeenkomstige refererende sleutel in de gerelateerde tabel.
De relatie tussen tabellen wordt tot stand gebracht door de sleutelvelden van de tabellen die gegevens bevatten die aan de criteria van de relatie voldoen.
- een klant kan veel facturen hebben maar elke factuur kan maar op naam van één klant staan
- een factuur kan veel regels hebben maar elke regel verschijnt maar op één factuur
- een product kan op veel regels voorkomen maar op elke regel staat maar één product
In dit voorbeeld ziet u het volgende:
Na het omzetten van de veel-op-veel-relatie ziet u in dit voorbeeld het volgende:
Om klantgegevens in de tabel ‘Facturen’ weer te geven, moet u een gemeenschappelijk veld tussen de twee tabellen hebben om een relatie te maken. ‘Klantnummer’ is dat gemeenschappelijke veld. In de tabel ‘Klanten’ is de primaire sleutel en in de tabel ‘Facturen’ is het de refererende sleutel.
In de tabel ‘Regels’ is ‘Productcode’ het gemeenschappelijke veld tussen de tabellen ‘Regels’ en ‘Producten’. In de tabel ‘Productcode’ is dit veld de primaire sleutel en in de tabel ‘Regels’ is het de refererende sleutel.
Deze sleutelvelden zijn een soort vergelijkingsveld. Raadpleeg Relaties.
Dit plan geeft nu het volgende aan: