Avatar billede supremebot Nybegynder
04. maj 2007 - 18:18 Der er 1 kommentar

find forskelllig kombinationer

et spørgsmål omkring forskellige kombinationer.
Min viden omkring mysql er simpelhen for lille vide om dette overhovdet kan lade sig gøre. jeg tror tror jeg kan lave godt jeg kan lave det med php, hvis jeg lave noget array gymnastik. det ville bare være hurtiger og bedre hvis mysql kunne ordne det i et hug.

jeg har tre tabel jeg skal arbejde med.

billede:
id(int), dato(date), ...

kategorier;
id(int), tekst(varchar)...

link:
billed_id(int),kategori(int),type(tinyint)

se det jeg skal finde ud af er hvor mange serier der er inde for et bestemt tid rum, bestem ud fra billede.dato

Det vil nok mest være link tabelen der skal kigges på for den link billede sammen med de forskellige kategorier. der er to typer kategorier "(type = 1)serie kategorier" dette er en kategori der passer til en hele strip uploadet billeder på engang, og "(type = 0)almindelige kategorier" som mere er en form for ekstra stikord der passe på billede. men da de er serier jeg er interesseret i så derfor skal være type = 1.

en serie er for eksempel alle billder der har japan og studietur som seriekategorier(type = 1). en anden serie kunne være alle billeder som  har show, afslutning, musical. så antalet af serie kategorier kan være forskellig.

det jeg godt kunne tænke mig var et array der så nogenlunder sådan her ud eller noget der minder om det;

serie    link.kategori_id  kategorier.tekst
  1          34            Japan
  1          37            studietur

  2          89            Spanien
  2          37            studietur

  3          56            Show
  3          48            Afslutning
  3          67            Musical

det vil sige den første serie der er fundet er Japan, Studietur.
Så det må jo være noget med at finde finde hvor mange forskellige kombination der er. kan dette overhoved lade sig gøre på en eller anden måde.

billede databasen det hander om kan findes her http://www.egmont-hs.dk/billeddb/ det er dog en midlertigdig version (beta version) har der. jeg har skrevet meget mere på den endlig version. men det kan måske give et lille hint til hvad det er jeg mener.

grunden til den lidt mærkelige form for kategori metode er at det er ekstremt hurtigt at uploade billeder og give dem kategori på en simpel og let måde. men det giver så også problem som dette. men hvis dette bliver løst tror jeg det vil fungere rigtig godt. jeg har ca 11gb billeder der skal op at ligge i den database så det er vigtigt at det er hurtigt og let at ligge billeder op i basen, så det for har jeg lavet det på denne måde.

skriv endlig hvis ikke for står hvad der er jeg mener eller hvis i er i tvivl om noget.

her er lige et eksempel på hvordan jeg viser billeder fra en serie

SELECT billede.*
FROM billede WHERE dato > '2007-02-17' AND dato < '2007-04-17' AND EXISTS( SELECT link.type FROM link, kategorier
WHERE link.type = 1 AND link.billed_id = billede.id
AND link.kategori_id = kategorier.id AND kategorier.id = '89'
AND EXISTS( SELECT link.type FROM link, kategorier
WHERE link.type = 1 AND link.billed_id = billede.id
AND link.kategori_id = kategorier.id AND kategorier.id = '86')) ORDER BY RAND() LIMIT 0,5

nok ikke den helt rigtige måde at gøre det på men den fungere og er hurtig
Avatar billede supremebot Nybegynder
10. maj 2007 - 01:30 #1
lukker spørgsmål

jeg har ændret databasen da jeg fandt et hul i den måde jeg giver kategorier på. Det blev for besværligt lave det med mysql, jeg fandt dog en løsning med php som virkede og perfermede ret godt. Men jeg har indset der er en forkert og beskidt måde at lave dette på, så nu har jeg fundet på en løsning hvor jeg stadig kan beholde kategoriserings-metode som jeg har lavet, bare ved hjælp af en ekstra tabel til at styre selve serierne med. På den måde er det stadig lige så let at give kategori, det forgår faktis på præsis samme med som før, database strukturen er bare noget bedre nu, det gør at dette problem kan løses med en simple query.
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