Database structuur

Gestart doorDylan14 reacties57 weergaven

15 berichten · pagina 1 van 1

Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Hoi,

Omdat ik binnenkort een nieuwe website ga maken (internetfaq.nl) wil ik alles goed hebben gedaan, dus hierbij; is deze database structuur logisch en goed?

Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8

InternetFAQ databasestructuur:

- users => id, username, password, email, rang, registedOn, lastOnline, registedIp, lastIp
- questions => id, ownerId, title, message, class, status, time, votes
- questions_answers => id, ownerId, questionId, parentId, message, time, votes
- points => ownerId, amountGold, amountSilver, amountBronze
- user_info => ownerId, age, bio, gender, website, profile_picture, totalVotes
- classes => id, minRang, title, description

Ik zat zelf te twijfelen waar ik profile_picture zou neer zetten, het word trouwens een mix van stackoverflow en goeievraag.nl

- Dylan
0
Berichten
1.871
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik zou profile_picture bij users doen.

user_info lijkt mij ook het beste.
0
Krm

Lid

Berichten
6.235
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
ik zou em bij user info doen
0
Berichten
3.334
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Krm schreef:
ik zou em bij user info doen
Inderdaad, daat staar al een soortgelijk iets.

// Typo
0
Berichten
7.307
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Waarom Engels en dan nog dubbele kolommen ook. Ik zie rang in de eerste tabel en class in de tweede. Die dingen betekenen hetzelfde alleen je haalt 2 talen door elkaar, misschien moet je daar nog even naar kijken.
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Class = catogorie
0
Berichten
7.307
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dylanh schreef:
Class = catogorie
Dan is rang als enigste Nederlands, of is die ook anders bedoeld?
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Ga eens na welke data je nodig hebt (niet specifiek per tabel) en zet dit onder elkaar.
Vervolgens kan je de eerste 3 normaalvormen toepassen bij het normaliseren.
0
Berichten
3.461
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Je leert pas goede databasestructuren maken als je les hebt gehad in het maken van ERDs. Dit zijn zogenaamde Entiteit Relatie Diagrammen. Als je daar meer over wilt weten wil ik er wel wat meer over vertellen. smile
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Josnl schreef:
Je leert pas goede databasestructuren maken als je les hebt gehad in het maken van ERDs. Dit zijn zogenaamde Entiteit Relatie Diagrammen. Als je daar meer over wilt weten wil ik er wel wat meer over vertellen. smile
Ik heb daar nog nooit les van gehad, vertel maarbiggrin
0
Berichten
7.307
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dylanh schreef:
Eerdere citaten tonen
Josnl schreef:
Je leert pas goede databasestructuren maken als je les hebt gehad in het maken van ERDs. Dit zijn zogenaamde Entiteit Relatie Diagrammen. Als je daar meer over wilt weten wil ik er wel wat meer over vertellen. smile
Ik heb daar nog nooit les van gehad, vertel maarbiggrin
Ik heb hier stof over bij informatica, ik zal je zo even een linkje sturen.

toevoeging op 3 februari 2014, 16:59:31:
http://www.informatica-online.nl/

Moet je je even aanmelden, maar ik snapte het er wel door.
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Josnl schreef:
Je leert pas goede databasestructuren maken als je les hebt gehad in het maken van ERDs. Dit zijn zogenaamde Entiteit Relatie Diagrammen. Als je daar meer over wilt weten wil ik er wel wat meer over vertellen. smile
Ugh. Ik heb echt een hekel aan ERDs. Wat mij betreft is het echt niet handig om mee te werken.

Wat betreft de TS:
Ga na of je data niet dubbel opslaat.
Bovendien zou ik questions_answers opspliten in een koppeltabel (questions_answers) en een answers tabel (die de daadwerkelijke answerdata bevat).
Op sich is het niet nodig, omdat je een antwoord normaal gesproken niet aan meerdere vragen gaat koppelen, maar het is mijns inziens wel netter.
Verder zou ik points niet opslaan als vaste integers, maar berekenen op basis van een points logbook. Oftewel, een extra tabel die transacties koppelt aan een gebruiker, welke je dan met een SUM() ophaalt. Dit om ook fraude te kunnen opsporen.
0
Berichten
3.461
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hier staat alles goed uitgelegd qua ERDs;
http://nl.wikipedia.org/wiki/Entity-relationshipmodel

Het lastige aan ERDs vind ik zelf het bepalen welke cardinaliteiten je mee moet geven. Maar daar heb jij nog niet zoveel mee te maken. Pas als je hele grote databases moet gaan ontwerpen moet je je daar mee bezig gaan houden. smile
De manier van Rik is inderdaad een goede optie.

Je ERD zal er ongeveer zo uit komen te zien in het begin:

[user]----------[vraag]
0
Berichten
112
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Josnl schreef:
Hier staat alles goed uitgelegd qua ERDs;
http://nl.wikipedia.org/wiki/Entity-relationshipmodel

Het lastige aan ERDs vind ik zelf het bepalen welke cardinaliteiten je mee moet geven. Maar daar heb jij nog niet zoveel mee te maken. Pas als je hele grote databases moet gaan ontwerpen moet je je daar mee bezig gaan houden. smile
De manier van Rik is inderdaad een goede optie.

Je ERD zal er ongeveer zo uit komen te zien in het begin:

[user]----------[vraag]
Ik het megeven van cardinaliteiten en modaliteiten (ofzo) ook heel lastig. Heb het nu op school.

Ontopic: ik zou hem ook bij user-info doen.
0
Berichten
5.274
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien

Eindhoven, Nederland

Maak alles in MySQL workspace, gebruik hierbij ook direct fatsoenlijke relationships + indexes als je t echt goed wilt doen. Met MySQL workspace krijg je een duidelijk overzicht in je database; als zeg ik het zelf. Je kan dit uiteraard ook in PHPMyAdmin doen of hardcore SQL, maar dat laatste is wel een stuk lastiger.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren