Avatar billede anri Novice
30. april 2014 - 09:13 Der er 7 kommentarer og
1 løsning

Brugerdefinerede kolonner

Hej.
Jeg har lige brug for lidt sparring.
I en table der hedder [Kunder] har jeg nogle kolonner med stamdata som [Adresse], [PostNr] og den slags.

Nu vil jeg gerne give slutbrugeren mulighed for selv at definere nogle kolonner, og jeg kan ikke vide hvor mange og hvad de skal hedde.  Det kunne være [BH_Størrelse (int)], [PollenAllergi(bit)] eller noget andet.

Jeg vil helst ikke ikke oprette nogle kolonner der hedder [Custom1], [Custom2] osv. for i teorien kunne kunden jo have 50 Custom-kolonner.

Har nogen af jer andre eksperter stået med lignende problemstilling, og fandt i en smart fleksibel løsning?
Avatar billede kalp Novice
30. april 2014 - 09:40 #1
Jeg tænker:

1. Opret en ny tabel og lav en relation 1-1 relation mellem de 2 tabeller.
2. Prefix kolonne navne med et eller andet, så du er sikker på der ikke opstår problemer med navne der fremtræder i begge tabeller.

derudover er det svært at sige mere uden rigtig at vide mere:) jeg går ud fra de opretter kolonner i et interface du har oprettet i et programmeringssprog.
Avatar billede anri Novice
30. april 2014 - 10:15 #2
Ja det tænkte jeg også.
Kender nu så nogen måde hvorpå man kan appende værdierne som kolonner uden at skulle lave en join for hver custom-kolonne.

..så det eksempeltvis så sådan ud..:

[KundeNavn]....[BH_Størrelse][PollenAllergi]
Arla.....17B, true
MD-foods.....22B, null
Se og hør.....22E, null
Kessler entertainment....77QQ, false
Avatar billede kalp Novice
30. april 2014 - 11:32 #3
du kan vidst godt skrive ca. sådan her:

select [KundeNavn], DenBrugerSpecifikeTabel.* from DinFasteTabel right join DenBrugerSpecifikeTabel ...


Du skal måske lave table alias for at DenBrugerSpecifikeTabel.* virker.
Avatar billede kalp Novice
30. april 2014 - 11:32 #4
hov det skal selvfølgelig være left join og ikke right join
Avatar billede keysersoze Guru
30. april 2014 - 11:36 #5
En anden mulighed er at arbejde med en XML-kolonne.
Avatar billede anri Novice
30. april 2014 - 14:48 #6
@kalp
Vil din query ikke returnere custom værdierne som rows fremfor kolonner på den tilhøende kunde?
Avatar billede kalp Novice
30. april 2014 - 15:14 #7
Den forstod jeg ikke:)
Man får jo altid rækker, som består af kolonner - det er hvad ovenstående giver.

Du kan nemt teste det hvis du har din DB oppe, så blot lav lidt dummy data og se om det er det ønskede resultat.
Avatar billede anri Novice
20. oktober 2015 - 09:58 #8
Hmm..
Den her opgave gled vist ud i intetheden..
Det beklager jeg, men jeg takker dem der kom med indlæg og lukker hermed tråden.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester