Vinnaren i pepparkakshustävlingen!
2008-10-09, 11:31
  #1
Medlem
Hej,

Jag är inte säker på om detta hör hemma i denna del på sidan men jag hoppas det annars får en mod flytta på den och jag ber om ursäkt. Men nu till min fråga.

Jag sitter och håller på och fixar så att mina bildnamn ska sparas i databasen för att jag lättare ska komma åt dem samt spara plats eftersom jag kommer att slippa spara om alla bilder till recensioner och sådant. Men jag vet inte hur databasstrukturen ska se ut och undrar om någon kan hjälpa mig?

Jag tror:
Så här har jag tänkt mig att den ska se ut, rätta mig gärna om jag har fel.
Jag behöver ha ett image_id som är unikt och olika för alla bilder så jag inte måste döpa om bilderna till unika namn hela tiden. Den kör jag auto_increment på.

Sen behöver jag ha ett id som kallas gallery_id. Jag har ett script som gör att jag kan ladda upp emot 100 bilder samtidigt och när jag laddar upp flera bilder på en och samma gång så lägger de sig i samma mapp. (Skapar en ny mapp varje gång jag laddar upp bilder för att ha någon ordning på servern.) Så jag skulle vilja ha ett id som kallas gallery_id och det är det id´t ska vara ett id som inte är unikt utan det är något som alla bilder som hör ihop ska ha tillsammans. Jag har tänkt mig att laddar jag upp 5st Resident Evil 5 bilder så ska de ha exempelvis gallery_id 1 men när jag senare laddar upp 20st Street Fighter IV bilder så får de gallery_id 2 eftersom de hör ihop. Jag hoppas ni förstår hur jag menar. Men hur gör jag detta då? Hur gör jag så att alla bilderna som hör ihop får samma gallery_id? Går det med auto_increment på något sätt?

Sedan har jag tänkt att ha ett id som kallas spel_id och det är bara för att veta vilket spel bilderna hör ihop med så när jag anropar alla bilder med exempelvis spel_id 3 så kommer alla bilder från det spelet att synas och inte bara de som är i samma mapp.

Sedan sparar jag bildadressen. Denna kan vi kalla imagename och där skriver den in mappen/bildnamnet på alla bilder. Så att det är lätt att söka rätt på dem.

Sen har jag en som kallas date så jag vet vilket datum bilderna laddades upp på. Men som ni förstår så är de 3 sista inte så svåra och dem klarar jag själv men det är värre med de 2 första hur ska jag göra för att få det att funka? och är det rätt tänkt att göra som jag gör eller är databasstrukturen helt fel?

MVH
Tobias
Citera
2008-10-10, 17:31
  #2
Medlem
googlevistas avatar
En enkel och snabb lösning är en kopplingstabell.

Kod:
images
======
image_id	(int, auto_increment)
imagename (varchar(255))
osv...

games
=====
game_id (int, auto_increment)
gamename (varchar(100))
osv...

game_images
===========
game_id (int)
image_id (int)

Tabellen game_images är alltså kopplingstabellen, där stoppar du in game_id med varje tillhörande image_id.
Exempeldata:
Kod:
game_id   image_id
------------------
 1          1
 1          2
 1          3
 1          4
 2          5
 2          6

Sen plockar du enkelt ut alla bilder som tillhör ett visst spel med en join.
Kod:
SELECT *
FROM games
INNER JOIN game_images ON games
.game_id game_images.game_id
INNER JOIN images ON game_images
.image_id images.image_id
WHERE games
.game_id 
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback