Het is de eerste keer dat ik normalisatie moet toepassen en er zullen dus hoogstwaarschijnlijk hier en daar fouten zijn, neem ik aan, maar kritiek is meer dan welkom =)

*nickname = spelersnaam
*guid = unieke id, per computer, dus meerde nicknames kunnen dezelfde guid hebben
*cl_id wordt toegewezen bij het joinen van een server

Mijn 3NV:
-----------

PLAYERS
nicknameID [PRIMARY KEY auto_increment]
nickname [UNIQUE constraint]

GUIDS
guidID [PRIMARY KEY auto_increment]
guid [UNIQUE constraint]

COMBINATIE
id [PRIMARY KEY auto_increment]
nicknameID
guidID

INFO
id [PRIMARY KEY auto_increment]
cl_id [???]

TEAM
cl_id [???]
team
kills
deaths

geen indexen: er worden telkens nieuwe records toegevoegd/geupdate | vandaar die Primary keys


In de laatste tabel (team), kan cl_id helaas een NULL retourneren, niet alle records zijn dus uniek, en het wordt daarenboven telkens geupdated/toegevoegd, dus weet ik er weinig raad mee


mocht iets onduidelijk zijn, laat het maar weten
*guid = unieke id, per computer, dus meerde nicknames kunnen dezelfde guid hebben
Dan verwacht ik deze informatie dus in de players tabel en niet in de guids tabel. Er hoort dus een FK id_guid in de players tabel die refereert naar de guids tabel.

Waar is verder de PK in je teams tabel? Wat houden de kolommen 'kills' en 'deaths' in, wat voor informatie wordt hierin opgeslagen? En tenslotte is 'datetime' niet echt een slimme naam voor een kolom, kies daar dus iets anders voor.

In de teams tabel kom ik verder de FK id_guid tegen, maar hoe worden spelers dan aan een team gekoppeld. Gaat dat via de guids of zit daar een andere relatie tussen?
bedankt voor de tips & vragen Blanche
********************************

kills & deaths stellen getallen voor, die om de uur geupdate zullen worden (aantal kills/deaths zullen worden toegevoegd bij de overeenkomstige online spelers)

@Tabel team: cl_id wordt gekoppeld of te wel aan team A of te wel aan team B, dat hangt er natuurlijk af van welke team de speler joint, maar van zodra hij in de server is, heeft hij zijn eigen cl_id, dus het is niet zo dat elk team (on)even cl_id's bevat
Ik dacht om een extra tabel te maken met daarin id_clid als F.K. die de attribuut team zou updaten, maar ik weet niet of dat wel de beste methode is.



-- players
+++ id        [P.K. A.I.]
+++ nickname [U.Q.]
+++ id_guid [F.K.]
+++ cl_id


-- guids
+++ id      [P.K. A.I.]
+++ guid
+++ type

-- team
+++ id       [P.K. A.I.]
+++ id_guid   [F.K.]
+++ team
+++ kills
+++ deaths
+++ laatst_online
Ik dacht om een extra tabel te maken met daarin id_clid als F.K. die de attribuut team zou updaten
Ik snap eerlijk gezegd niet wat je hier nu mee bedoelt?

Als ik het goed begrijp krijgt een speler een cl_id toegewezen zodra hij op de server inlogt en wordt dat gekoppelt aan een team. Maar waarom zie ik deze koppeling dan niet terug in je datamodel?

Verder is het doel van de guids tabel me ook nog niet echt duidelijk. Zoals je datamodel er nu uit ziet vormt die tabel de koppeling tussen de players en de teams tabel, klopt dat?

Ook lijkt het me dat kills en deaths berekende waarden zijn. Waarom zet je niet de complete log vanuit het .txt bestandje om naar de database en ga je vanaf daar de benodigde gegevens bepalen?

Ook lijkt het me dat kills en deaths berekende waarden zijn.

kills/deaths per speler worden berekend/opgeteld door spelersnamen op te tellen in een multi-array


Waarom zet je niet de complete log vanuit het .txt bestandje om naar de database en ga je vanaf daar de benodigde gegevens bepalen?

Heb hier nog niet over nagedacht, maar zou de laadtijd van de weergave niet wat trager zijn dan? Aangezien een speler zomaar van naam, team meermaals in een minuut kan veranderen?


Als ik het goed begrijp krijgt een speler een cl_id toegewezen zodra hij op de server inlogt en wordt dat gekoppelt aan een team. Maar waarom zie ik deze koppeling dan niet terug in je datamodel?
Zoals je datamodel er nu uit ziet vormt die tabel de koppeling tussen de players en de teams tabel, klopt dat?

Klopt, dus ik zie in dat ik die F.K. id_guid in team moet vervangen door F.K. id_cl_id : een koppeling tussen players en team (dmv cl_id FK) en een koppeling tussen plays en guids dmv (id_guid FK)


Verder is het doel van de guids tabel me ook nog niet echt duidelijk.

Mijn doel was om alle wijzigingen van spelersnamen op te slaan en de kills/deaths per spelersnaam te noteren en om dan enkel de unieke spelers weer te geven met een extra pagina per gebruiker waar al zijn andere spelersnamen/kills/deaths worden weergegeven

Reageren