[PHP] Crosschecken van enorm veel gegevens

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een database met ongeveer 10000, of in de toekomst meer, leden. Ik wil AL deze leden crosschecken met dezelfde leden op basis van een 50tal indicatoren. Op basis van deze 50tal factoren wordt een score gegenereert, en een beschrijving welke van de 50 indicatoren van toepassing zijn om tot die score te komen... En... ik weet niet zo goed hoe ik dat moet aanpakken. :P

10000 x 10000, of laat staan 50000 x 50000 bij 50000 leden, is een enorme hoeveelheid. Nu gaat het checken op zich nog relatief snel, althans, dat is misschien nog te doen als ik het in stukjes hak. Maar hoe kan ik in hemelsnaam de resultaten enigzins bruikbaar op slaan? Ik kan moeilijk een maar miljard gegevens in een tabel gaan stoppen lijkt me (50000 x 50000 x 50 = 125000000000). Zelfs 50000 x 50000 is nog nog altijd 2500000000, ongewoon veel gegevens dus.

Iemand advies over hoe ik dit structureel moet aanpakken?

Acties:
  • 0 Henk 'm!

  • kokx
  • Registratie: Augustus 2006
  • Laatst online: 13-09 20:30

kokx

WIN

Als het vaste waarden zijn. Dan sla je in te tabel in een ENUM('waarde1','waarde2','..') veld op. Ook zou je eventueel een id van waarden op kunnen slaan als het 10+ aan verschillende waarden zijn. Maar als het open vragen zijn, zul je het helaas zo moeten blijven doen en is er geen enkele mogelijkheid.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Kun je niet op basis van een paar criteria al heel snel 'matches' laten afvallen? (Hebben we het over een datingsite? :P ). Als je op basis van 1 criterium de match al kunt laten vervallen hoef je de overige 49 criteria natuurlijk niet meer af te gaan. Er zijn 1001 manieren om dit probleem aan te pakken, maar dit is iig de (min of meer) simpelste en snelste; hoe eerder je matches kunt laten afvallen voor verdere processing hoe beter.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 20:40

Reptile209

- gers -

Kan je een kenmerkende score (desnoods in de vorm van een binaire waarde van 50 bits waarin een eigenschap 'aan' of 'uit' staat) per persoon berekenen? Dan hoef je daarna alleen nog maar goed hanteerbare scores te vergelijken. Bovendien hoef je met 50000 mensen "maar" 0.5 x 50000 x 50000 checks te doen: bij n personen vergelijk je nr. 1 met 2 t/m n, de 2e met 3 t/m n (want met 1 heb je 'm al vergeleken), de 3e met 4 t/m n, enzovoorts.

Zo scherp als een voetbal!


Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 21:10

pietje63

RTFM

Als het idd een datingsite is (waar ik net als RobIII meteen aan dacht zou ik 2 dingen doen):
- zoeken op bepaalde exacte eisen real time uitvoeren.

Het automagisch zoeken van een match zou ik doen via een match algoritme, wat je wellicht zo kan opzetten:
Eerst geaardheid, dan valt de helft af (zoals eerder aangegeven)
Alle ja-nee waarden zet je achter elkaar in een string, php heeft een compare functie wat aangeeft in hoeverre strings met elkaar overeen komen (zoals bepaalde hobby's, sport, uitgaan, haarkleur) Je meot er hierbij opletten dat je een substr moet nemen indien iemand geen voorkeur aangeeft, of er geen info beschikbaar is
Waarden als leeftijd zul je toch direct moeten testen

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


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heel erg bedankt voor de genoemde adviezen. Het betreft geen datingsite, maar bij dit concept kan ik wel gebruik maken van jullie suggesties. Nogmaals: Bedankt!!
Pagina: 1