Toon posts:

[FORUM] opslaan pref's; aparte tabel?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Wat vinden jullie?

gewoon de preferences van de users opslaan in de tabel waar ook de gegevens van de users instaan, of een aparte table creeren?
Wat is sneller e.d., wat about overzichtelijkheid?

Advies is welkom :)

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Alleen een aparte tabel creeren als je ook van plan bent om in die tabel meerdere records per user op te nemen. (dus 1:n)
Als je dat niet van plan bent, kan je beter de tabel uitbreiden en eventueel een view maken op die tabel met de usergegevens

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Cookie kan ook nog. :P


Maar idd, geen aparte tabel. Da's niet 'normaal'. :)

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Aparte tabellen komt de overzichtelijkheid iig wel ten goede.

Verwijderd

Topicstarter
Op maandag 10 december 2001 21:10 schreef ACM het volgende:
Aparte tabellen komt de overzichtelijkheid iig wel ten goede.
want als je zoals bij GOT 11 pre's hebt, wordt de usertable best groot.
Hoe gaat dat bij GOT?

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Een juiste ontwerpbeslissing leidt tot overzicht.
Een willekeurige keuze (dus niet gebasseerd op een ontwerprichtlijn) leidt allwen tot verwarring

Verwijderd

Topicstarter
please define 'juiste ontwerpbeslissing'?

:)

nee geintje,
bedoel, dit is iets wat je eenmalig tegenkomt in forum, dus richtlijn?

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

diverse fora kennen enkel aan/uit 'toggles'

bij mysql is het gebruik van een set() of enum() veld (pick you choice, rtfm :) dan wel handig (weinig ruimte, makkelijk te lezen)...

Klaar voor een nieuwe uitdaging.


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Op maandag 10 december 2001 21:20 schreef chem het volgende:
diverse fora kennen enkel aan/uit 'toggles'

bij mysql is het gebruik van een set() of enum() veld (pick you choice, rtfm :) dan wel handig (weinig ruimte, makkelijk te lezen)...
Snap ik dit? Ergens anders bedoeld??

Verwijderd

Topicstarter
Op maandag 10 december 2001 21:20 schreef chem het volgende:
diverse fora kennen enkel aan/uit 'toggles'

bij mysql is het gebruik van een set() of enum() veld (pick you choice, rtfm :) dan wel handig (weinig ruimte, makkelijk te lezen)...
zijn set's en enum's kleiner dan bits?
Of kent MySQL die niet, want anders is dat nog mooier.
is vaak alleen maar voor aan/uit

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Op maandag 10 december 2001 21:18 schreef trebel het volgende:
please define 'juiste ontwerpbeslissing'?

:)

nee geintje,
bedoel, dit is iets wat je eenmalig tegenkomt in forum, dus richtlijn?
Heel kort dan:
Een tabel over users met de pref's er als kolommen in is heel snel, maar als je een nieuwe pref wilt bijhouden, krijg je een tabelwijziging.

Als je de prefs in een aparte tabel bijhoudt met als kolommen: user_id, pref_soort, pref_waarde dan kan je eenvoudig een nieuwe pref toevoegen. Je staat een nieuwe waarde van pref_soort toe en de pref kan worden vastgelegd.

Het is dus net afhankelijk van de flexibiliteit die je nodig hebt of je tot een extra tabel komt of het met kolommen oplost.

Duidelijk zo?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 10 december 2001 21:17 schreef trebel het volgende:
Hoe gaat dat bij GOT?
GoT heeft een preferences tabel en een user tabel, in die preferences tabel staat idd alles uit "prefs" en in die user tabel alles uit "profile".

  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

Precies, het gaat naast een afweging kwa overzichtelijkheid om de afweging tussen snelheid en flexibiliteit (evt. onderhoud).

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


Verwijderd

Jij hebt er over nagedacht, ofnie

Verwijderd

Topicstarter
Op maandag 10 december 2001 21:39 schreef Ingollus het volgende:
Jij hebt er over nagedacht, ofnie
Wie? :?

  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

Op maandag 10 december 2001 21:39 schreef Ingollus het volgende:
Jij hebt er over nagedacht, ofnie
sorry beetje lame getypt, correxie!

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Op maandag 10 december 2001 21:37 schreef ACM het volgende:

[..]

GoT heeft een preferences tabel en een user tabel, in die preferences tabel staat idd alles uit "prefs" en in die user tabel alles uit "profile".
Als ik het goed begrijp per user 1 record in user tabel en 1 record in preference tabel.

Als dit klopt heb je een 1:1 relatie tussen de tabellen.
In een logisch ontwerp kan dit nog, technisch wordt dit altijd op 1 tabel gemapt.

  • DiSiLLUSiON
  • Registratie: September 2000
  • Laatst online: 30-05 14:58
Ik heb bieden gewoon in 1 tabel gedonderd. Werkt goed zo, het is toch niet de bedoeling dat men later via de db gaat rotzooien aangezien alles toch via de software kan :)

Maar ja ik kan me wel voorstellen dat 2 aparte tabellen overzichtelijker is.

  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 23:09
het lijk me eiluk ook wel sneller :?

User tabel wordt vaker aangesproken dan de prefs tabel, dus als de user tabel kleiner is heb je ook meer snelheid?

denk ik dan...?

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


  • DiSiLLUSiON
  • Registratie: September 2000
  • Laatst online: 30-05 14:58
Op maandag 10 december 2001 21:48 schreef Tampie2000 het volgende:
User tabel wordt vaker aangesproken dan de prefs tabel, dus als de user tabel kleiner is heb je ook meer snelheid?
Bij mij zou de prefs tabel wordt vaker aangesproken worden als de user tabel.. omdat de prefs vaker opgevraagd worden dan de userinfo, die haal ik 1x op en klaar.. ;)

edit: beetje verkeerde nu/toen/dan :P

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Daar heb je dus geen last van als je gewoon een goede index op je user tabel hebt staan.

Consistentie in de DB en onderhoudbaarheid van de code lijken me belangrijker.
Twee tabellen vragen dus om twee inserts bij een nieuwe user en twee deletes bij verwijdering.

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op maandag 10 december 2001 21:27 schreef Goodielover het volgende:

[..]

Snap ik dit? Ergens anders bedoeld??
http://www.mysql.com/doc/S/E/SET.html

set-values worden binair opgeslagen, je kan er dus nog veel leukere zoekopdrachten op uitvoeren...

Klaar voor een nieuwe uitdaging.


  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
Op maandag 10 december 2001 21:55 schreef DiSiLLUSiON het volgende:
Bij mij zou de prefs tabel wordt vaker aangesproken worden als de user tabel.. omdat de prefs vaker opgevraagd worden dan de userinfo, die haal ik 1x op en klaar.. ;)
Doe je hier niet iets fout?

Het lijkt mij dat je de prefs-tabel alleen aanspreekt bij het inloggen. Dan zet je die zooi in je sessie, en klaar. Misschien dat je hem bij het updaten nog ff nodig hebt, verder niet.

User-tabel gebruik je bij elk topic/forum-overzicht, of geef je niet aan van wie een post/topic is?..

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
Op maandag 10 december 2001 22:46 schreef PlayR het volgende:
User-tabel gebruik je bij elk topic/forum-overzicht, of geef je niet aan van wie een post/topic is?..
Waarschijnlijk gebeurt dat via een join op geindexeerde kolommen.

Het komt in forum-software trouwens ook nog wel vaak voor dat de username in bijv. de topic-tabel wordt opgeslagen om het mogelijk te maken anoniem te reageren (on-geregistreerd dus).


Verder wordt hier vaak gezegd dat de snelheid achteruit gaat wanneer alles in 1 tabel staan. Dat begrijp ik dus effe niet, is een database-server nou juist niet bedoelt om grote heoveelheden records snel door te kunnen zoeken :? Waarom zijn we anders van plain-text afgestapt.

Kijk topix-achtige praktijken van het doorzoeken van een tabel met 3.000.000 records kan idd. wat traag gaan, maar zo veel gebruikers zullen zich waarschijnlijk niet aanmelden op een forum (dat zou dus 1 op de 5 nederlanders zijn :P)

Verwijderd

Ik heb het ooit gedaan met twee tabellen, gaat niet goed, moet je de id opzoeken van de ene en die bij de andere er instoppen. Gaat de ene insert verkeerd kun je de prefs table niet vullen bla bla alleen nadelen dus

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op dinsdag 11 december 2001 19:31 schreef freak007 het volgende:

[..]

Het komt in forum-software trouwens ook nog wel vaak voor dat de username in bijv. de topic-tabel wordt opgeslagen om het mogelijk te maken anoniem te reageren (on-geregistreerd dus).
Wat je ook zou kunnen interpreteren als user anoniem, userid=0 ofzo. Kan je tenminste user anonymous renamen naar anoniem.

Om de username op te slaan als apart veld, lijkt mij behoorlijk brak.

  • DiSiLLUSiON
  • Registratie: September 2000
  • Laatst online: 30-05 14:58
Op maandag 10 december 2001 22:46 schreef PlayR het volgende:

[..]

Doe je hier niet iets fout?

Het lijkt mij dat je de prefs-tabel alleen aanspreekt bij het inloggen. Dan zet je die zooi in je sessie, en klaar. Misschien dat je hem bij het updaten nog ff nodig hebt, verder niet.

User-tabel gebruik je bij elk topic/forum-overzicht, of geef je niet aan van wie een post/topic is?..
Zoals Freak007 onder je al zei, bij sommige boards wordt de username etc bij de posttabel opgeslagen, zo ook bij mij.

En de prefs worden bij elke pageview opgevraagd, omdat die nou eenmaal niet in de sessies staan, en aangezien ik toch bij elke pageview de rechten van een gebruik moet checken zit daar gelijk een join bij voor de prefs.. Ik kan de prefs enzo ook in de sessies gooien maargoed dat bekijk ik nog wel ff..

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op dinsdag 11 december 2001 21:02 schreef Nielsz het volgende:

[..]

Wat je ook zou kunnen interpreteren als user anoniem, userid=0 ofzo. Kan je tenminste user anonymous renamen naar anoniem.

Om de username op te slaan als apart veld, lijkt mij behoorlijk brak.
En dat is het ook. Het getuigt van net zoveel intelligentie als het meesturen van de topictitle met een link, omdat men het anders niet voor elkaar kreeg...

Met name vBulletin is hier vreselijk in, met extra data opslaan die niet nodig is... geef mij maar een user 'nul', die niet door de eindgebruiker mee is in te loggen (door na inloggen op if ((int)$userid > 0) te checken voorkom je ook andere ongein)

Klaar voor een nieuwe uitdaging.


  • Apache
  • Registratie: Juli 2000
  • Laatst online: 14-09 22:46

Apache

amateur software devver

zoiets?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT b_threads.threadID,
     b_threads.forumID,
     b_threads.threadtitle,
     b_replys.replyID,
     b_replys.postdate,
     b_replys.message,
     b_users.userID,
     b_users.username,
     b_users.prof_icq,
     b_users.prof_signature,
     b_users.prof_webicon,
     b_users.prof_website,
     b_forums.forumname
FROM b_threads, b_replys
LEFT JOIN b_users ON b_replys.userID = b_users.userID
LEFT JOIN b_forums ON b_threads.forumID = b_forums.forumID
WHERE b_threads.threadID = '$thread' AND b_threads.threadID = b_replys.threadID
ORDER BY b_replys.postdate ASC

lijkt me wel geschikt om zo'n query te gebruiken?

(origineel datamodel kwijtgespeeld met serverreinstall dit weekend trouwens :( :+)

If it ain't broken it doesn't have enough features

Pagina: 1