Hi all,
Al een vrij lange tijd werk ik met SQL. Echter was dat voornamelijk aan de data ophaal kan (SELECT) en niet het design gedeelte van SQL. Echter met de komst van maatwerk applicatie is daar verandering in gekomen en heb ik destijds wat in "elkaar geknutselt" om alles werkend te krijgen.
Hierbij heb ik een database opgezet naar des tijds het beste van mijn kunnen en de kennis die ik had. Nu de maatwerk applicatie een tijdje draait merk je toch dat je tegen wat onhandigheden in de de database aanloopt en dat het uitbreiden met nieuwe functionaliteit vooral op database niveau af en toe een geklooi is waar ik van af wil.
Nu heb ik het volgende gemaakt (Alleen design):
https://sqldbm.com/Projec...JhOkGFrngIE8md_DYjF4jNYw0
In kort samen gevat wat de database momenteel doet en de functionaliteit qua data welke het ondersteund.
Er komt een document (PDF) binnen welke in een filestore terecht komt en wordt opgeslagen met een unique ID (tabel "summon").
Dat is de hoofd tabel van de database en vrijwel elke tabel is een afgeleide van die tabel of weer daarvan een afgeleiden. Er wordt data uitgewisseld tussen drie applicaties waar ik graag wil hebben dat de benodigde data uit eindelijk in deze database terecht komt waar de "waarheid" van dat document dus in staat en wat leidend is om informatie over dat document op te vragen.
Mijn vraag
Is de opbouwe van deze database logisch, tabel namen gebruik, kolom naam gebruik. De onderlingen verbindingen met foreign keys. Zien jullie hier nog rariteiten in of zaken waarvan jullie denken als je dit nu net iets anders doet dan wordt X makkelijker later.
Daarnaast, het concept "CLUSTERD INDEX" en "UNCLUSTERD INDEX" is me ook niet helemaal duidelijk, wat is het verschil tussen de twee en in welke situatie is het handig om de 1 of de ander te gebruiken.
En als laatste veen vraag over indexxen. Vrijwel alles zal op basis van het "ID" gebeuren welke in de "summon" tabel zit, echter kan het af en toe zijn dat ik ook op basis van andere kolommen een tabel moet uitlezen, wanneer is het handig om een tweede index op een tabel te zetten?
Relevante software en hardware die ik gebruik
SQL Server 2008r2 (Ja ja ik weet het, we moeten naar een nieuwe versie ;-))
Voor iedereen die ook maar even de tijd neemt om er naar te kijken, mijn dank is groot :-)!
De pure SQL voor de gene die dat makkelijker vinden lezen:
https://pastebin.com/NuxM28PN
Al een vrij lange tijd werk ik met SQL. Echter was dat voornamelijk aan de data ophaal kan (SELECT) en niet het design gedeelte van SQL. Echter met de komst van maatwerk applicatie is daar verandering in gekomen en heb ik destijds wat in "elkaar geknutselt" om alles werkend te krijgen.
Hierbij heb ik een database opgezet naar des tijds het beste van mijn kunnen en de kennis die ik had. Nu de maatwerk applicatie een tijdje draait merk je toch dat je tegen wat onhandigheden in de de database aanloopt en dat het uitbreiden met nieuwe functionaliteit vooral op database niveau af en toe een geklooi is waar ik van af wil.
Nu heb ik het volgende gemaakt (Alleen design):
https://sqldbm.com/Projec...JhOkGFrngIE8md_DYjF4jNYw0
In kort samen gevat wat de database momenteel doet en de functionaliteit qua data welke het ondersteund.
Er komt een document (PDF) binnen welke in een filestore terecht komt en wordt opgeslagen met een unique ID (tabel "summon").
Dat is de hoofd tabel van de database en vrijwel elke tabel is een afgeleide van die tabel of weer daarvan een afgeleiden. Er wordt data uitgewisseld tussen drie applicaties waar ik graag wil hebben dat de benodigde data uit eindelijk in deze database terecht komt waar de "waarheid" van dat document dus in staat en wat leidend is om informatie over dat document op te vragen.
Mijn vraag
Is de opbouwe van deze database logisch, tabel namen gebruik, kolom naam gebruik. De onderlingen verbindingen met foreign keys. Zien jullie hier nog rariteiten in of zaken waarvan jullie denken als je dit nu net iets anders doet dan wordt X makkelijker later.
Daarnaast, het concept "CLUSTERD INDEX" en "UNCLUSTERD INDEX" is me ook niet helemaal duidelijk, wat is het verschil tussen de twee en in welke situatie is het handig om de 1 of de ander te gebruiken.
En als laatste veen vraag over indexxen. Vrijwel alles zal op basis van het "ID" gebeuren welke in de "summon" tabel zit, echter kan het af en toe zijn dat ik ook op basis van andere kolommen een tabel moet uitlezen, wanneer is het handig om een tweede index op een tabel te zetten?
Relevante software en hardware die ik gebruik
SQL Server 2008r2 (Ja ja ik weet het, we moeten naar een nieuwe versie ;-))
Voor iedereen die ook maar even de tijd neemt om er naar te kijken, mijn dank is groot :-)!
De pure SQL voor de gene die dat makkelijker vinden lezen:
https://pastebin.com/NuxM28PN