Een eerste aanpassing die je zou moeten maken (in mijn ogen uiteraard...) is de volgende: Vervang de tabellen [tblGekochte_vogel] en [tblGeleende_vogel] door één tabel [tblVogels]. Een vogel is tenslotte, of hij nou geleend is of gekocht, een vogel; de kenmerken die een vogel een vogel maken zijn uiteraard 100% identiek. Dus kun je de gegevens van de vogels perfect in één tabel onderbrengen. Bovendien hebben gekochte en geleende vogels aanvullende eigenschappen die behoorlijk verschillen; die verschillen hou je dan bij in verschillende tabellen. Hoe leg ik zo uit...
In je hoofdtabel komt dan een extra veld: [Eigendom] o.i.d. De naam is een beetje uit de lucht geplukt, maar is verder niet interessant. Deze kolom wordt een Keuzelijst, met de opties Koop, Leen, Huur, Lease etc. Wat je maar nodig hebt. Hiermee kwalificeer je dus of een vogel gekocht is, of geleend.
Wat kan er weg uit de hoofdtabel? Velden als: [aankoopprijs] en [aankoopdatum]. Zoals de naam al suggereert, doen deze velden niet mee als je een vogel leent. Weg ermee, en in een aparte tabel: [tblGekochte_vogel_Details]. Andersom geldt ook: de velden [leendatum] en [retourdatum] gelden niet voor koopvogels. In een aparte tabel dus! [tblGeleende_vogel_Details] bijvoorbeeld.
Dan is er nog een kwestie waar je iets mee zou moeten doen: een leenvogel leen je misschien één keer, maar voor hetzelfde geld wil je hem 2 jaar later nog een keer lenen. Lijkt mij dat dat moet kunnen! In de tabel [tblGeleende_vogel_Details] moet je dus meerdere records per vogel kunnen maken. Dat geldt uiteraard niet voor koopvogels: tenzij je een beetje licht in het hoofd bent, zul je dezelfde vogel maar één keer kopen. Dus: de tabel [tblGeleende_vogel_Details] krijgt een één-op-veel relatie met [tblVogels], en de tabel [tblGekochte_vogel_Details] krijgt een één-op-één relatie met [tblVogels]. Verder zou ik nog een aanpassing voorstellen: het veld [kwekerID] zou ik ook verplaatsen naar de tabellen [tblGeleende_vogel_Details] en [tblGekochte_vogel_Details]. Beide tabellen dus. Ook hiervoor een logische verklaring: als je een vogel een tweede keer leent, kan hij in de tussentijd verkocht zijn aan een andere kweker. En je wilt uiteraard de kweker vastleggen die op het moment van lenen de eigenaar is. Ergo: als je een vogel drie keer leent, kan hij van drie verschillende kwekers zijn op die momenten. Hoeft uiteraard niet.... Dit probleem doet zich weer niet voor bij koop, omdat die transactie maar één keer voorkomt per vogel. Vandaar de gescheiden opslag.
Dan het Ouders verhaal.... In weze is dat simpel op te lossen door in de tabel [tblVogel] twee velden op te nemen: [VaderID] en [MoederID]. In dit veld sla je dan het ID op van records van vogels die je al hebt. Dus elk 'kind' heeft twee ouders, die ook in dezelfde tabel staan. Je hebt dan ook geen aparte foto's meer nodig voor de ouders, want je hebt voor elke vogel een veld [Foto]. Dus ook van de ouders.
Je geeft voor je kweekgegevens het volgende
Nestgegevens (broedkooi, broed ronde, vader, moeder, start datum, eind datum, eerste leg, 2e leg tot 6e leg, datum gezet, 6 maal uitkomst datum, en 6 maal notitie, en 1 maal opmerking, ringnummer voor elk jong
Ook dat wordt een aparte tabel, met een deeltabel voor elke leg. Ik zou althans niet alle legvelden 6 keer opnemen in dezelfde tabel. Dus alle leggegevens apart, en koppelen aan nestgegevens.
Ik heb mijn ideeën verwerkt in bijgaande db. Needless to say dat de formulieren niet meer werken