Format71 Skrevet 1. september 2004 Del Skrevet 1. september 2004 Et gitt databehandlingsprogram har fra ett titalls opp mot 150 filer per kunde. Allle disse filene har vært lagret i en flatstruktur på disken. Nå er det blitt spørsmål om å få pumpet filene inn i en sql-database slik at større bedrifter kan benytte seg av tilgangskontrollen i sqlserver for å begrense hvem som skal ha tilgang til hvilke kunder osv. Det blir mao en helsikes mengde BLOB-felt hvor vær blob tilsvarer en fil på disk. Så står valget mellom to datastrukturer, og jeg trenger argumenter for og i mot de to. (Forsøk å se bort i fra at dette kun er et hack og at dataen egentlig skulle vært modelert helt om osv, men det er ikke aktuelt i denne omgang...) Modell 1: Hver kunde = en record i en tabell. Tabellen har en kolonne for kundenummer og videre en kolonne per fil. Dersom man legger til nye filtyper legger man bare til en ny kolonne i tabellen. | KUNDENR | FILID1 | FILID2 | FILID3 |---| FILIDn | For å få tak i en fil må man da finne riktig record ut fra kundenavnet og deretter riktig kolonne ut fra filid. Modell 2: Hver fil får en egen rad i tabellen. Tabellen har en kolonne for kundenummer, en for filidentifikasjon og en for selve fila. | KUNDENR | FILID | BLOB | En gitt fil finnes da ved å velge riktig rad ut fra kundenummer og filid. Det har utviklet seg til noe i nærheten av en religionsdebatt her på jobb så det hadde vært greit å fått noen argumenter utenifra. -Vegar Lenke til kommentar
aadnk Skrevet 1. september 2004 Del Skrevet 1. september 2004 Tror det blir minst kode med modell 1, men om metoden er ytterligere raskere enn modell 2 kan jeg ikke uttale meg om. Hvis modell 1 brukes kan følgende SQL syntaks tas i bruk for å finne ut om en bruker har tilgang til de respektive filene: SELECT [filID] FROM [Tabell-navn] WHERE KUNDENR='[Kundenummer]' I samme stund kan følgende SQL-kommando brukes på modell 2: SELECT * FROM [Tabell-navn] WHERE KUNDENR='[Kundenummer]' AND FILID='[filID]' Så det er i bunn og grunn en smaksak. Lenke til kommentar
Frank2004 Skrevet 7. september 2004 Del Skrevet 7. september 2004 Modell 1: Hver kunde = en record i en tabell. Tabellen har en kolonne for kundenummer og videre en kolonne per fil. Dersom man legger til nye filtyper legger man bare til en ny kolonne i tabellen. | KUNDENR | FILID1 | FILID2 | FILID3 |---| FILIDn | For å få tak i en fil må man da finne riktig record ut fra kundenavnet og deretter riktig kolonne ut fra filid. Erm...? FY!! Sånn skal man da for .... ikke gjøre det! Kolonner (og tabeller) angir struktur, mens dataene lagres i rader. Er en god del enklere å legge til en rad enn det er å lage en ny kolonne, er det ikke? For ikke å snakke om å lage spørringer som gjør noe interessant med dataene.. (Ikke at de var så veldig interessante akkurat nå, men sett at dere vil legge inn nye kolonner i fremtiden.) Denne løsningen vil antageligvis sørge for at databasen deres dør på seg også, så ikke å anbefale. Modell 2: Hver fil får en egen rad i tabellen. Tabellen har en kolonne for kundenummer, en for filidentifikasjon og en for selve fila. | KUNDENR | FILID | BLOB | En gitt fil finnes da ved å velge riktig rad ut fra kundenummer og filid. Det har utviklet seg til noe i nærheten av en religionsdebatt her på jobb så det hadde vært greit å fått noen argumenter utenifra. -Vegar Høres bedre ut. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå