[CHECK] inlogsysteem voor scriptlib
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
--
-- Tabelstructuur voor tabel `leden`
--
CREATE TABLE IF NOT EXISTS `leden` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`voornaam` varchar(32) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
`achternaam` varchar(32) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
`geslacht` varchar(32) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
`email` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `leden_atributen`
--
CREATE TABLE IF NOT EXISTS `leden_atributen` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`leden_id` int(5) DEFAULT NULL,
`premium` int(1) NOT NULL,
`actief` int(1) NOT NULL,
`functie` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `leden_id` (`leden_id`),
KEY `premium` (`premium`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Gegevens worden uitgevoerd voor tabel `leden_atributen`
--
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `premium`
--
CREATE TABLE IF NOT EXISTS `premium` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`naam` int(11) NOT NULL,
`kosten` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
-- Tabelstructuur voor tabel `leden`
--
CREATE TABLE IF NOT EXISTS `leden` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`voornaam` varchar(32) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
`achternaam` varchar(32) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
`geslacht` varchar(32) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
`email` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `leden_atributen`
--
CREATE TABLE IF NOT EXISTS `leden_atributen` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`leden_id` int(5) DEFAULT NULL,
`premium` int(1) NOT NULL,
`actief` int(1) NOT NULL,
`functie` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `leden_id` (`leden_id`),
KEY `premium` (`premium`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Gegevens worden uitgevoerd voor tabel `leden_atributen`
--
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `premium`
--
CREATE TABLE IF NOT EXISTS `premium` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`naam` int(11) NOT NULL,
`kosten` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Tikkes C op 04/01/2011 13:16:04:
Een foreign key is NIET voor performantieverhoging, indexen zijn voor voor performantieverhoging. Een foreign key is gegevensmodellering en hiermee wordt in gebruikelijke rdbms-en afgedwongen dat je de parent-child relatie moet onderhouden en de parent niet kan weggooien zolang er children zijn. Dat is heel wat anders dan performantieverhoging. Dat foreign keys vrijwel altijd geindexeerd worden is weer performantieverhoging.referenties maken hé...
zo kan je tabellen met elkaar linken...dit zorgt voor performantieverhoging in je database enzovoort...
Foreign key
zo kan je tabellen met elkaar linken...dit zorgt voor performantieverhoging in je database enzovoort...
Foreign key
Als deze structuur goed is ga ik ermee verder.
En ik raad je aan InnoDB en utf-8 te gebruiken.
Pim - op 04/01/2011 14:44:05:
UTF8 mee eens. Wat zijn de voordelen van InnoDB, waarom raad je dat aan?En ik raad je aan InnoDB en utf-8 te gebruiken.
John D op 04/01/2011 14:52:11:
Wat zijn de voordelen van InnoDB, waarom raad je dat aan?
InnoDB heeft effectief foreign keys, in tegenstelling tot MyISAM (tenzij dat ondertussen veranderd is). En zoals je al zei, zijn FK's belangrijk voor de correctheid van je data.
John D op 04/01/2011 13:27:56:
Een foreign key is gegevensmodellering en hiermee wordt in gebruikelijke rdbms-en afgedwongen dat je de parent-child relatie moet onderhouden en de parent niet kan weggooien zolang er children zijn.
Gewijzigd op 04/01/2011 15:00:48 door Jens V
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
producten
- id
- naam
producten_attributen
- id
- product_id
- attribuut_naam
- attribuut_waarde
- id
- naam
producten_attributen
- id
- product_id
- attribuut_naam
- attribuut_waarde
Op die manier kun je meerdere producten (bijvoorbeeld verschillende soorten premium, extra shit) toevoegen zonder vast te zitten aan limieten ;-)
het is wel de bedoeling dat het een simpel member systeem word.. Haha.
Misschien is het handiger als je dat premium-veld niet in de publieke versie doet. Om dat goed te implementeren heb je veel meer code nodig en dat gaat voorbij een simpel login systeem. Je kan hooguit een ACL toevoegen, waar je dan voor jou versie een premium systeem aanhangt.
dit is al voor de leden:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
--
-- Tabelstructuur voor tabel `leden`
--
CREATE TABLE IF NOT EXISTS `leden` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`voornaam` varchar(32) DEFAULT NULL,
`achternaam` varchar(32) DEFAULT NULL,
`geslacht` varchar(32) DEFAULT NULL,
`email` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
-- Tabelstructuur voor tabel `leden`
--
CREATE TABLE IF NOT EXISTS `leden` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`voornaam` varchar(32) DEFAULT NULL,
`achternaam` varchar(32) DEFAULT NULL,
`geslacht` varchar(32) DEFAULT NULL,
`email` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
moet ik nu met die leden_attributen gaan werken of niet?
Want je zou je mail adres ook kunnen veranderen.
Ik zal voor de beginners toch maar
de tabel van functies ook nog. zo kan er gemakkelijk een admin, moderator, lid,.. aangesteld worden.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE IF NOT EXISTS `leden` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`voornaam` varchar(32) DEFAULT NULL,
`achternaam` varchar(32) DEFAULT NULL,
`email` varchar(30) DEFAULT NULL,
`wachtwoord` varchar(250) NOT NULL,
`ip` varchar(20) NOT NULL,
`activatiecode` varchar(10) NOT NULL,
`datum_registratie` datetime NOT NULL,
`activatie` int(11) NOT NULL,
`functie` int(2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
`id` int(4) NOT NULL AUTO_INCREMENT,
`voornaam` varchar(32) DEFAULT NULL,
`achternaam` varchar(32) DEFAULT NULL,
`email` varchar(30) DEFAULT NULL,
`wachtwoord` varchar(250) NOT NULL,
`ip` varchar(20) NOT NULL,
`activatiecode` varchar(10) NOT NULL,
`datum_registratie` datetime NOT NULL,
`activatie` int(11) NOT NULL,
`functie` int(2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Gewijzigd op 04/01/2011 16:34:14 door Jasper DS
Gewijzigd op 04/01/2011 16:38:27 door Jurrian Nijland
UPDATE - beginpost
Gewijzigd op 04/01/2011 17:15:33 door Jurrian Nijland
Nog iemand commentaar?
- Je manier van commentaar is niet overal hetzelfde. Je gebruikt soms // terwijl je voor het merendeel # gebruikt.
- Ik heb op minimaal 1 plek het gebruik van header() binnen de body tags gezien.
- Je echoed nog steeds op een paar plaatsen boven je HTML
- Je controle op $_POST['voornaam'] en $_POST['achternaam'] is brak. Ik kan dus bijvoorbeeld niet Jo heten en @#%(@%#*@% is wel een geldige naam?
Er zullen vast nog wel meer foutjes in zitten.