Hej!
Har just börjat intressera mig för ASP och dess fantastiska värld. För att ha något att träna på har jag tänkt göra en databas av min CD-samling med ett webgränssnitt gjort i ASP. Jag vill därför inte använda Access till att lägga data i databasen utan vill helt använda webbaserade formulär. Där kommer problemet...
Databasen är konstruerad på följande sätt:
3 st tabeller:
artist album song
------ ----- ----
artist_id album_id song_id
artist_namn artist_id album_id
album_namn song_namn
album_release song_lengd
Följande relationer finns i tabellerna:
artist album song
------ ----- ----
artist_id <1:N> artist_id
album_id <1:N> album_id
En artist kan ha flera album och ett album kan ha flera sånger.
För det första; är detta en bra uppdelning? Har tänkt på att en sång också kan finnas på flera album...
Då till det första problemet:
Jag har tänkt göra en inmatningssida för att fylla på med data som skall vara utformad ungefär så här:
Artist:...........
Album:............
Album release:..........
När man klickar på <Skicka poster!> ska informationen läggas in i rätt tabell. Hur gör man detta på ett bra sätt? Om det är så att t. ex Madonna redan finns i tabellen "artist" vill jag ju inte att hon ska läggas till igen utan bara att artist_id hämtas och läggas in i tabellen "album", där sedan resten av informationen läggs in.
Förfarandet skall vara så här om man vill lägga till en CD-skiva:
1. Kontrollera om artist redan finns i databasen. Om så inte är fallet -lägg till artisten.
2. Hämta artist_id.
3.Lägg till en rad i tabellen album som associerar den med artist_id.
4. Hämta album_id.
5. Lägg till en rad för varje låt i tabellen song som associerar med album_id.
Då kommer nästa problem!
Alla CD-skivor har ju inte samma antal låtar! Hur kan man göra det på ett smidigt sätt? Jag vill ju inte ha en massa tomma poster som associerar med album!
Jag har haft lite idéer om att göra ett standarformulär med 15 rader för låtar, men då kommer man ju till problemet med tomma poster. En annan idé har varit att göra registreringen av CD i tre steg. skriva in om Artist och Album, skicka informationen returnera album_id och på nästa sida välja antal låtar på skivan, skicka denna information som returnerar ett formulär med rätt antal fält där man skriver in låtarna och skickar till databasen. Denna lösning tycker jag inte verkar så smidig. Det måste ju finnas bättre sätt!
Jag vill ha flera tabeller i databasen för att göra den mer flexibel och kraftfull.
En annan fråga om Access; spelar det någon roll om man lägger till relationer där om man ska använda ASP och SQL för att bearbeta databasen/tabellerna?
Hoppas det finns någon som har lite ideér och lösningar på mina problem och tankar!
För att få saker och ting dynamiskt och för att undvika att samma artist måste läggas in flera gånger i Artister använder du dig av mellantabeller som kopplar samman huvudtabellerna.
Om du vill veta vilka skivor Madonna har släppt så för du söka med en Inner Join..först letar du upp Madonna i Artist...sedan letar du med hjälp av hennes Art_Id upp vilka skivor hon är med på i art_alb tabellen. Där får du ett alb_id som du använder för att hämta information om skivan i Album. Du kan sedan gå vidare med hjälp av alb_id och söka i alb_song för att få veta vilka låtar som är med på den skivan o.s.v. Som du ser kan man söka fram och tillbaka ganska obehindrat, och man slipper en massa upprepningar i databasen.
Hade jag fattat rätt...och var jag tydlig nog? Om inte får du höra av dig.
(Jag brukar undvika specialtecken (å, ä ö etc) i tabellnamnen, men har skrivit ut dom i exemplet ovan för att du lättare skall se vad jag menar.)
267 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a