Toon posts:

Ontwerp PostgreSQL-db voor profielensite

Pagina: 1
Acties:

Verwijderd

Topicstarter
In januari vorig jaar heb ik een domein waar ik niks mee deed op mijn thuis-ip laten zetten en ben ik begonnen met een soort profielensite, om zo eens kennis te maken met PostgreSQL en uit te vinden wat het kan. Een leuk proef- en speelveldje dus. Alleen heb ik nu een probleem. De site begon door 'm wat rond te spammen bij vrienden redelijk te lopen en heeft intussen 250 leden.
Ik heb de bewuste database in de tussentijd nog een keer of 3 overhoop gehaald, maar uiteindelijk loop ik nog steeds tegen problemen aan. Omdat de site binnenkort verhuist wordt naar een andere server, wou ik de boel gelijk maar eens goed aanpakken. Ik heb een artikel op yapf.net gelezen over het opzetten van een database, en zo kwam ik uiteindelijk op het volgende schema uit:

Afbeeldingslocatie: http://got.oosterveen.net/new_db.gif

Helemaal compleet is dat niet, want eigenlijk heb ik ook nog tabellen nodig voor nieuws, nieuwsreacties en modacties. :) Iemand die les heeft gehad in het ontwerpen van databases (ik zelf niet, dus ik doe ook maar wat ;)) bood toen aan er 'ns naar te kijken. Dat leverde dan weer dit op:

Afbeeldingslocatie: http://got.oosterveen.net/DBH2_2.png

Daarbij wou ik dan naast het schema public met deze tabellen, nog een schema backup aanmaken. De records uit userinfo zouden dan op het moment dat iemand z'n profiel verwijderd daarheen moeten verhuizen. Berichten die de user heeft verstuurd en nieuwsberichten die hij of zij gepost heeft mogen gewoon blijven staan, de vriendjesteksten mogen mee naar backup.

Wat ik me nu dus afvraag, is dit handig zoals het nu is? En hoe kan het beter? :)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-03 14:33

NMe

Quia Ego Sic Dico.

Waarom heb je een aparte profile-tabel? Voor zover ik kan zien is het gewoon een één op één relatie die altijd aanwezig is, dus die info zou je in de user_info-tabel moeten zetten. Zo te zien dacht die vriend van je dat ook, en in dat ontwerp zie ik zo snel eigenlijk geen ontwerpfouten. Lijkt me best aardig te implementeren zo. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
-NMe- schreef op maandag 06 maart 2006 @ 17:26:
Waarom heb je een aparte profile-tabel? Voor zover ik kan zien is het gewoon een één op één relatie die altijd aanwezig is, dus die info zou je in de user_info-tabel moeten zetten. Zo te zien dacht die vriend van je dat ook, en in dat ontwerp zie ik zo snel eigenlijk geen ontwerpfouten. Lijkt me best aardig te implementeren zo. :)
Hehe, mja, die profile-tabel is best zielig en kan in dat schema inderdaad wel weg. En nu ik dit zo zit te tikken komt er ineens nog weer een oud idee van me naar boven, om users de mogelijkheid te geven op de een of andere manier meerdere pagina's aan te maken (ipv dat je zo'n verticaal verhaal van 12 meter krijgt :+), dus misschien dat het op die manier nog wel weer nuttig zou kunnen zijn aangezien je dan een 1-op-veel relatie krijgt, als ik het goed heb. :)

En ok dan, tnx! :)

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Doel je met dit schema op opmerkingen over herbruikbaarheid, (netjes) performance (250 leden) of wat precies? Aan de hand van dit schema valt er namelijk niet veel te zeggen over de performance.

Qua relaties en tabellen ziet het er op het eerste gezicht wel ok uit.

Fat Pizza's pizza, they are big and they are cheezy


Verwijderd

Topicstarter
JKVA schreef op maandag 06 maart 2006 @ 20:23:
Doel je met dit schema op opmerkingen over herbruikbaarheid, (netjes) performance (250 leden) of wat precies? Aan de hand van dit schema valt er namelijk niet veel te zeggen over de performance.

Qua relaties en tabellen ziet het er op het eerste gezicht wel ok uit.
Nouja, ik bedoel in eerste instantie de bruikbaarheid ja. :) Performance is niet zo'n groot issue geloof ik, het draait nu nog prima op een Pentium 2 350mhz.

[ Voor 18% gewijzigd door Verwijderd op 06-03-2006 20:26 ]


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Dan lijkt het me prima. Waarom trouwens een GUID en niet gewoon een bigint die je incrementeert of random nummer geeft? Een GUID lijkt me in deze context niet van veel toegevoegde waarde en alleen overhead geven.

Fat Pizza's pizza, they are big and they are cheezy


Verwijderd

Topicstarter
JKVA schreef op maandag 06 maart 2006 @ 20:28:
Dan lijkt het me prima. Waarom trouwens een GUID en niet gewoon een bigint die je incrementeert of random nummer geeft? Een GUID lijkt me in deze context niet van veel toegevoegde waarde en alleen overhead geven.
Ik wou zelf ook voor een gewone SERIAL gaan ja, maar omdat je het vroeg nog maar even nagevraagd aan degene die het tweede schema heeft gemaakt.
Zijn antwoord was dat hij die dingen graag gebruikt, als in GUID-addict! ;)
Pagina: 1