18. august 2009 - 21:25Der er
7 kommentarer og 1 løsning
Designpatterns, sql queries
Hej Jeg sidder af og til med en lettere kompliceret sql query til at hente data ud af databasen (lettere kompliceret kan også bare være en enkelt join ) som jeg skal bruge flere forskellige steder, men med små ændringer. Det kunne fx være en query der henter flere rækker ud, hvor jeg også har brug for at kun at hente én enkelt række ud, baseret på ID'en.
Jeg leder lidt efter en smart måde at gøre strukturere mine programmer på så jeg har mindst muligt redundant sqlkode på en smart måde. Normalt plejer jeg at programmere efter n-tier modellen så jeg har nogen business objekter, et datalag o.s.v.
På nuværende tidspunkt har jeg forsøgt mig med at gøre en sql kommando til et objekt der har forskellige egenskaber, som returnere en sql query som streng. Det gør dog at sql koden bliver ret rodet, når der kommer flere egenskaber som fx: "Select a,b,c"+SettingA==true ? "x" : "y" ...
Jeg frygter lidt at det bliver noget værre rod at vedligeholde. Ellers har jeg overvejet at putte base sql strengen i en abstrakt klasse, sammen med abstrakte metoder således at hvis man nedarver fra den kan man fx indsætte flere regler i Where delen af sql'en.
Har i nogen kommentar til ovenstående, og muligvis en bedre måde at gøre det på?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Du har naturligvis overvejet at droppe SQL helt og bruge en O/R mapper ikke?
Men hvis vi antager at du vil bruge SQL saa:
* brug af parameters / prepared statement er mandatory
* jeg ville nok ikke lave et objekt hiraki men noejes med at have en utility metode som tager et array/collection af feltnavn+value som argument og konstruerer en SQL ud fra det
Jeg har overvejet en O/R mapper, men jeg kender dem ikke så godt. Jeg har fået forståelsen af at de virker 1:1 i forhold til db tabel data og objekt data. Kan jeg lave nedenstående med en O/R mapper:
Databasen består af 3 tabeller Tekst, Billeder og Kommentare. Hver post i Tekst har 0-n poster i Billeder og i Kommentare. Ved hjælp af Tekst.Id kan jeg hente de tilhørende billeder og kommentare ud. Jeg skal gerne kunne: 1) Hente Poster ud fra Tekst incl antallet af tilhørende billeder og kommentare 2) Hente poster ud fra tekst der har mindst ét billede eller kommentar
Hvis jeg bruger en O/R mapper til 2) skal jeg så vidt jeg har forstået først hente Tekst posterne ud, løbe dem igennem for at tælle antallet af billeder, og sortere i dem for at få dem jeg vil ha? Eller er jeg forkert på den?
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.