[CHECK] inlogsysteem voor scriptlib

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Jasper DS

Jasper DS

04/01/2011 13:27:23
Quote Anchor link
database:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
--
-- 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 ;
 
PHP hulp

PHP hulp

26/04/2024 11:21:30
 
John D

John D

04/01/2011 13:27:56
Quote Anchor link
Tikkes C op 04/01/2011 13:16:04:
referenties maken hé...
zo kan je tabellen met elkaar linken...dit zorgt voor performantieverhoging in je database enzovoort...
Foreign key
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.
 
Jasper DS

Jasper DS

04/01/2011 13:34:05
Quote Anchor link
Als deze structuur goed is ga ik ermee verder.
 
Pim -

Pim -

04/01/2011 14:44:05
Quote Anchor link
Ik snap het scheiden van het profiel en de gebruikersgegevens niet helemaal. Als je de profiel-velden aan wil passen, verander je toch ook een tabel?

En ik raad je aan InnoDB en utf-8 te gebruiken.
 
John D

John D

04/01/2011 14:52:11
Quote Anchor link
Pim - op 04/01/2011 14:44:05:
En ik raad je aan InnoDB en utf-8 te gebruiken.
UTF8 mee eens. Wat zijn de voordelen van InnoDB, waarom raad je dat aan?
 
Jens V

Jens V

04/01/2011 14:56:11
Quote Anchor link
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
 
Chris -

Chris -

04/01/2011 15:12:15
Quote Anchor link
Kun je die premium niet beter in een aparte tabel zetten onder producten?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
producten
- 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 ;-)
 
Jasper DS

Jasper DS

04/01/2011 15:17:02
Quote Anchor link
het is wel de bedoeling dat het een simpel member systeem word.. Haha.
 
Pim -

Pim -

04/01/2011 15:24:21
Quote Anchor link
InnoDB heeft transacties

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.
 
Jasper DS

Jasper DS

04/01/2011 15:26:30
Quote Anchor link
Dan doe ik dat premium systeem weg, ik ga gewoon een net member systeem maken voor beginners.

dit is al voor de leden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 ;


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 1 2 tabellen gebruiken.
de tabel van functies ook nog. zo kan er gemakkelijk een admin, moderator, lid,.. aangesteld worden.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
Gewijzigd op 04/01/2011 16:34:14 door Jasper DS
 
Jurrian Nijland

Jurrian Nijland

04/01/2011 16:37:59
Quote Anchor link
Als ik jou was zou ik de leden attributen als extra optie doen, dat een ervaren PHP-er de tabel-info zelf bij de database kan invoegen maar dat het script er verder wel los bij te downloaden is...
Gewijzigd op 04/01/2011 16:38:27 door Jurrian Nijland
 
Jasper DS

Jasper DS

04/01/2011 16:53:14
Quote Anchor link
UPDATE - beginpost
 
Jurrian Nijland

Jurrian Nijland

04/01/2011 17:13:18
Quote Anchor link
Laat maar, onzinnige post, delete maar :P
Gewijzigd op 04/01/2011 17:15:33 door Jurrian Nijland
 
Jasper DS

Jasper DS

04/01/2011 18:44:09
Quote Anchor link
Nog iemand commentaar?
 
- Mark -

- Mark -

04/01/2011 19:04:20
Quote Anchor link
- je functie activatiecode() maakt gebruik van eregi dit is verouderd. Kijk eens naar ctype_alnum(), die is in dit geval goed te gebruiken.
- 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.
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.