Beste Mede-Tweakers,
Ik zit met het volgende probleem:
Voor een hobby project (waar ik helaas niet zoveel over kan vertellen) scrape ik vrij veel data van social network site X.
1 van deze types data zijn de zogenaamde 'friends relations'. Nu is het mij niet echt te doen om het datamodel (tenzij het echt fout zit) maar eerder de manier hoe ik het opsla.
Momenteel heb ik een tabel 'friends' met 2 kolommen:
- user
- friend
Beide kolommen zijn integers.
Momenteel scrape ik per user zijn friends, en die sla ik dan op in de vorm:
user1 -> vriend1
user1 -> vriend2
etc
Nu komt dus ooit het 'probleem' dat als je verder scraped je vrij snel tot een situatie komt als de volgende:
user25->vriend5
terwijl die omgekeerd er al in staat (vriend5 -> user25 dus).
Hoe pak je dit qua performance het beste aan? (Ik spreek over een aantal miljoenen records).
- Ga je elke keer als je een insert wil doen kijken of de omgekeerde relatie al bestaat? (Hier ga je dus dubbel zoveel queries doen, namelijk 1 select per insert?).
- Hou je alles gewoon dubbel bij? (Met vrij veel dubbele onnodige data, die bij miljoenen records misschien niet zo handig is?)
- Andere opties?
Ik heb uiteraard reeds gegoogled op "Friends relations database" en dergelijke, maar het enige wat ik vind zijn mensen die vragen hoe ze moeten uitnormaliseren.
Ik luister graag naar jullie input!
Ik zit met het volgende probleem:
Voor een hobby project (waar ik helaas niet zoveel over kan vertellen) scrape ik vrij veel data van social network site X.
1 van deze types data zijn de zogenaamde 'friends relations'. Nu is het mij niet echt te doen om het datamodel (tenzij het echt fout zit) maar eerder de manier hoe ik het opsla.
Momenteel heb ik een tabel 'friends' met 2 kolommen:
- user
- friend
Beide kolommen zijn integers.
Momenteel scrape ik per user zijn friends, en die sla ik dan op in de vorm:
user1 -> vriend1
user1 -> vriend2
etc
Nu komt dus ooit het 'probleem' dat als je verder scraped je vrij snel tot een situatie komt als de volgende:
user25->vriend5
terwijl die omgekeerd er al in staat (vriend5 -> user25 dus).
Hoe pak je dit qua performance het beste aan? (Ik spreek over een aantal miljoenen records).
- Ga je elke keer als je een insert wil doen kijken of de omgekeerde relatie al bestaat? (Hier ga je dus dubbel zoveel queries doen, namelijk 1 select per insert?).
- Hou je alles gewoon dubbel bij? (Met vrij veel dubbele onnodige data, die bij miljoenen records misschien niet zo handig is?)
- Andere opties?
Ik heb uiteraard reeds gegoogled op "Friends relations database" en dergelijke, maar het enige wat ik vind zijn mensen die vragen hoe ze moeten uitnormaliseren.
Ik luister graag naar jullie input!