[php/mysql]Indexeren

Pagina: 1
Acties:
  • 173 views sinds 30-01-2008
  • Reageer

  • douweh
  • Registratie: Maart 2001
  • Laatst online: 20-08 18:34
Vraagje,
ik zit met een probleem, niet dat ik er niet uitkom, maar meer de vraag hoe kom ik er het snelste uit.
Stel ik heb een directory met bestandjes..
Die wil ik laten indexeren in een database..
Ok, ik laat een mooi php scriptje draaien, gooi alles in een database..
deze bestanden komen dan in deze vorm in een tabel:
id|filename|etcetreer|jhdsf|vsdf

Nu moet de db natuurlijk wel up to date blijven en dus draai ik het scriptje af en toe..
Hoe check ik nu het simpelst of bepaalde bestanden nog niet in de db staan, of juist dat ze nog in de db vermeld staan, maar niet meer bestaan in de directory..

Ik heb nu het volgende bedacht:
Ik doe een SELECT filename FROM tabel
die gooi ik in een array, vervolgens check ik bij elk bestand in de directory, of hij in_array is, zoniet toevoegen....
Daarna gooi ik elke naam uit de array, die in de directory gevonden is..
Dan houd ik dus in de array over de bestanden die alleen nog in de DB staan..
en dan doe ik een DELETE blablabla WHERE filename=array[0] OR array[1] etc..

Is deze manier van aanpakken slim of juist niet?
De codes kloppen zo niet helemaal maar het id is duidelijk neem ik aan..

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 12:35
Compleet filepath unique maken en dan een REPLACE query ?

Verwijderd

Of gewoon met een timestamp werken ?

  • douweh
  • Registratie: Maart 2001
  • Laatst online: 20-08 18:34
ja ok, dan krijg je geen dubbele dingen in het systeem, maar die krijg je nu ook niet..
en met jouw methode doe je dus voor elk record een replace?
of begrijp ik je nu niet..

Dit laat trouwens niet het probleem weg van die items die wel nog in de DB staan,. maar niet meer in de directory

  • douweh
  • Registratie: Maart 2001
  • Laatst online: 20-08 18:34
timestamp??
Is mijn probleem niet duidelijk, of begrijp ik je bedoeling niet..
kan natuurlijk ook..

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

of al die checks achterwege laten en compleet alles opnieuw in de database zetten :)

  • douweh
  • Registratie: Maart 2001
  • Laatst online: 20-08 18:34
dat had ik eerder ook bedacht..
maar aan een filename kunnen dus meerdere dingen toegeschreven worden zegmaar..
en dat blijft dan dus niet bestaan in de db,

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 12:35
CyruzB: Of gewoon met een timestamp werken ?
:?

  • whoami
  • Registratie: December 2000
  • Laatst online: 17:40
Op maandag 24 juni 2002 14:15 schreef Bosmonster het volgende:
of al die checks achterwege laten en compleet alles opnieuw in de database zetten :)
Da's ook een oplossing, dan moet je ook al niet controleren welke bestanden er niet meer in die directory staan en welke records je dus uit je db moet verwijderen.

https://fgheysels.github.io/


Verwijderd

Op maandag 24 juni 2002 14:14 schreef douweh het volgende:
offtopic:
je icongame is trouwens kapoere

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op maandag 24 juni 2002 14:17 schreef whoami het volgende:

[..]

Da's ook een oplossing, dan moet je ook al niet controleren welke bestanden er niet meer in die directory staan en welke records je dus uit je db moet verwijderen.
Precies.. lijkt me veel meer load gaan kosten om alles te checken beide kanten op, dan om even opnieuw alles in de database te zetten.

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 13:34

pietje63

RTFM

Op maandag 24 juni 2002 14:15 schreef Bosmonster het volgende:
of al die checks achterwege laten en compleet alles opnieuw in de database zetten :)
idd, lijkt mij het makkelijkst en zolang je maar een paar honderd bestanden hebt nog goed te doen (en ik denk zelfs het snelst)

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


  • douweh
  • Registratie: Maart 2001
  • Laatst online: 20-08 18:34
Op maandag 24 juni 2002 14:17 schreef dj_delta het volgende:

[..]

offtopic:
je icongame is trouwens kapoere
ik weet het,
maar weet er niemand een betere manier voor het echte probleem? of is mijn systeem zo slecht nog niet?(zou een keer leuk zijn voor de verandering:))

  • douweh
  • Registratie: Maart 2001
  • Laatst online: 20-08 18:34
Op maandag 24 juni 2002 14:16 schreef douweh het volgende:
dat had ik eerder ook bedacht..
maar aan een filename kunnen dus meerdere dingen toegeschreven worden zegmaar..
en dat blijft dan dus niet bestaan in de db,
Wat ik dus al eerder zei,
dat systeem met de hele db opnieuw schrijven kan niet vanwege het bovenstaande..
aan één zo'n record komt meer informatie vast dan alleen de flename

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Op maandag 24 juni 2002 14:14 schreef CyruzB het volgende:
Of gewoon met een timestamp werken ?
Je kunt idd bijhouden waneer de DB voor het laatst gewijzigd is, en vervolgens naar de aanmaaktijd van de bestanden kijken waneer er nieuwe zijn, maar hiermee haal je niet meer bestaande bestanden niet uit de db :)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Op maandag 24 juni 2002 14:15 schreef douweh het volgende:
timestamp??
Is mijn probleem niet duidelijk, of begrijp ik je bedoeling niet..
kan natuurlijk ook..
Ja sorry, beetje te snel geweest ...

Voor het toevoegen van nieuwe files zou je met de modified-date van de files kunnen werken, om zodoende enkel files toe te voegen die een datum hebben, later dan de laatste update van je database.

Maar dit helpt natuurlijk niet om te checken of er bestanden in de db staan die op disk al weg zijn ...

EDIT: net zoals Janoz zegt dus :9
Pagina: 1