Fråga : Behövd hjälp för databasdesign

Hälsningar Expert-Utbyter.  Förmiddag som I betraktar designalternativ för en 2008) databas för SQL-server (och har a bäst-övar ifrågasätter (om det finns ett bäst övar för detta).  Grundidét för databasen är att använda ”ett huvudsakligt” bordlägger för att rymma fixad numrerar av idrott som data sätter in (före detta. Räkna samman pekar, besegrar först) och använder därefter another bordlägger (eller multipeln bordlägger), för att rymma ”härledde” data sätter in (härlett från den huvudsakliga tabellen sätter in - före detta. Genomsnittet pekar per först besegrar). Jag har en start att lista av härledd sätter in att I-förmiddagen som planerar för att genomföra (där är omkring 200), men det listar ska växer med tiden. Mitt ifrågasätta förbinder till vad bordlägger strukturerar gör den mest avkänningen, när du vet i förskott att du ska tillfogar sätter in. Två alternativ kommer omgående att vara besvärad:

  --  Använd en singel bordlägger för att rymma de alla av härledde datan sätter in (horisontellt) och går till och med smärta av att tillfoga ett nytt sätter in, varje gång jag kommer upp med en och däribland att ändra alla MELLANLÄGGET, och UPPDATERINGsprocs och någon annan bearbetar som rely på fixad bordlägger schemaen (jag kan föreställa många). Det är doable, men det slår mig som, väl, inelegant för att göra det hitåt. Inte bestämd förmiddag I, om det finns en peka som en växande antal av sätter in på ska start till myren, besegrar också querykapacitet - det kunde, med tiden, finnas hundratals mer ökad fields.
  --  Genomföra en cross-reference bordlägger för att rymma en lista av sätter in (field_id, field_name), och another, mycket mer smal men långt, långt djupare ”härledd statistik” bordlägger för att rymma separata rekord för varje sätter in. I stället för 200+ sätter in, och, något att säga, 50000 rekord som jag skulle, avslutar upp med 8 sätter in bara eventuellt 10 miljon rekord som hitåt gör den. Att tillfoga som är nytt, sätter in är enkelt - tillfoga ett nytt rekord till XREFEN bordlägger, och starten som kastar nya rekord in i den härledde statistiken, bordlägger under den field_id.  Det är lättare att indexera som otvivelaktigt ska, hitåt, som skulle, jag förväntar och att querying.  Mitt främsta bekymmer med denna strategi är queryeffektivitet med ombud sammanfogar plus som (eventuellt mycket) stort antal av ror, som skulle avslutar upp i ”som härleddes”, bordlägger. Det förmodade överflöd av lagringskapacitet och intelligent definierade index bör I angå med queries som effektivt utför med denna design?  Jag antar, om det finns en ro begränsar bekymmer som jag kunde bygga separat bordlägger för att rymma separata undergrupper av de härledde datan, men isåfall jag kunde avsluta upp att måste att göra multipelqueries för att få en required uppsättning av data det tillbaka, som total- effektivitet för appeller in i gut för question.

My berättar bestämt mig att den bäst lösningen är #2 eller någon variation av den, eller eventuellt något tredje scenariot. Ultimately det verkar att det kommer besegrar till att välja mellan effektivitet som är borttappad med många kolonner vs. effektivitet som är borttappad med många ror plus som enbordlägga sammanfogar.  Finns det ett standart, eller den bäst designen övar som tilltalar denna typ av omständigheten? Finns det bestämt stämm designöverväganden som jag bör fokusera på optimering med denna typ av scenariot? Tack i förskott alla.

Rick
" klar "

Svar : Behövd hjälp för databasdesign

det måste finnas något villkorar att förhindra kodifierar.

kontrollera, om något av follwingen är riktigt

* Kontrollera kan vara en typ, som inte kan motta fokusera, liksom en etikett.
* Kontrollens synliga egenskap kan vara fastställd till nr.en.
* Kontrollens möjliggjorde egenskap kan vara fastställd till
Andra lösningar  
 
programming4us programming4us