10. juli 2006 - 09:30Der er
7 kommentarer og 3 løsninger
Dynamiske attributter på tabel
Hej eksperter!
Jeg skal lave et system, der bygger på en database tabel. Hvilke atributter, der ønskes registreret for hver post varierer meget over tid, og der er desuden mange (ca 80) atributter i tabellen fra start.
Jeg ønsker at lave mit system, så man selv kan fjerne visse atributter og desuden oprette nye på den database tabel, der ligger bag systemet.
Hvordan er det smartest at lave dette? Skal jeg lave en "ALTER TABLE" hver gang brugeren opretter en ny attribut, og så tilføje den direkte i tabellen? Eller skal jeg lave en tabel, der hedder noget i retning af "atributter" og "attribut værdier" og så lade disse to ekstra tabeller håndtere de dynamiske attributter?
Ved 80 atributter, så er jeg bange for at metoden med at køre det i støtte-tabeller ikke vil performe særlig godt. Og det besværliggør søgning.
Men på den anden side - at lave et program, der "piller" direkte ved tabelstukturen med ALTER TABLE - Det lyder både farligt og uholdbart i mine ører.
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
Du skal helt klart IKKE lave noget griseri med ALTER TABLE, derimod er din idé om en attribut-tabel lige efter bogen...
Og hvorfor skulle der være performance-issues ved at joine til en separat attribut-tabel; hvis dine indekser i øvrigt er på plads, burde det ikke være noget problem.
Besværliggjort søgning - tjah, så er det vel heller ikke værre; om ikke andet, så kunne man jo lave nogle views ovenpå de to tabeller...
Synes godt om
Slettet bruger
10. juli 2006 - 11:06#2
Mange tak for dit svar - det har givet anledning til yderligere overvejelser. Jeg sad netop blot og havde brug for noget "frisk" input udefra, så mange tak for det!
I Microsoft Dynamics CRM har de oprettet en extension tabel som har en 1-1 relation til en anden tabel som indeholder core-attributter (kolonner) som der ikke kan rettes i. Men i extension tabellen bliver der flittigt oprettet og fjernet kolonner efter brugernes behov. Noget tilsvarende er gjort i SAP Business One.
Derfor kan man jo godt tage ved lære af hvorledes de "store" løsninger er banket sammen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.