Avatar billede anri Novice
30. juli 2013 - 09:44 Der er 4 kommentarer og
1 løsning

Slut-bruger defineret query

Ok.  Jeg ved godt at det her er en stor "No-no!", men jeg har nogle scenarier hvor det kan være vidt forskelligt hvad kunderne ønsker sig i nogle lister.

Eksempel:
Nogle kunder vil have vist dokumenter hvis de er knyttet til bestemte afdelinger;
SELECT * FROM Documents DOC JOIN Departments DEP ON (...) WHERE DEP.Location in (5, 8, 9, 12);

Andre vil have vist dokumenter pr administrator;
SELECT * FROM Documents DOC JOIN Users USR ON (...) WHERE USR.IsAdministrator = true;

Ja faktisk kan jeg ikke helt forudse hvilke tabeller der vil være nødvendigt at knytte sammen til den enkelte kundes ønsker.
En løsning ville være at tillade en SQL query at blive udfyldt fra bruger-interfacet, men sikkerhedsmessigt er det jo helt godnat og skulel database-strukturen blive ændret, så knækker filmen jo også.


Nogle alternative forslag til hvordan man kunne løse dette?
Avatar billede Slettet bruger
30. juli 2013 - 12:38 #1
Jeg tænker lidt hvis det er. Så lav nogle views som de kan arbejde med. Evt view for hver table så de ikke får adgang til selve databasen.
På den måde sørger du for de ikke indsætter noget i databasen :)
http://msdn.microsoft.com/en-us/library/aa214068%28v=sql.80%29.aspx

ellers må du jo bare lave en kæmpe formular, hvor de har mulighed for at selecte alt hvad selectes kan.
Avatar billede arne_v Ekspert
30. juli 2013 - 19:19 #2
Views har vel ikke saa meget med readonly/update at goere.

Readonly sikres ved kun at grante select uanset om det er view eller tabel.

Men et denormaliseret view kunne vaere nemmere for ikke database kyndige at tilgaa.
Avatar billede arne_v Ekspert
30. juli 2013 - 19:21 #3
Med hensyn til det originale spoergsmaal saa tror jeg ikke at der er nogen gode genveje.

En GUI hvor man man select hvad man vil have.

Foerst selecte man tabeller (GUI joiner selv). Alternativt det store view som allerede er joinet.

Og saa udvaelger man felter (f.eks. checkboxe) og saetter betingelser paa i GUI (combobox med felt og text felt med vaerdi).
Avatar billede anri Novice
31. juli 2013 - 08:22 #4
Her ender jeg med at lægge mig op ad josh1987's svar.

Da selve queryen skal laves af vores egne folk (det kan slut-brugerne for det meste ikke gennemskue), vælger jeg i stedet at lade  vores folk lave et VIEW for hvert ønsket datascenarie, og så vil slutkunden kunne angive det specifikke view fremfor at definere querien.

Ulempen vil være at vi skal ind i SQL serveren for at oprette det, men det opvejer bestemt ulemperne ved at lægge query-logik ud til slutbrugere.

Læg et svar josh.
Avatar billede anri Novice
14. august 2013 - 11:32 #5
Intet svar inden 24 timer, så lukker jeg.
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