>> Om mee te begin, te oorbrug wat dalk jou enigste ervaring
met web ontwikkeling, wat ek gedink ek wil doen, is om te steel 'n paar
voorbeelde wat jy kan gesien het in 50
As jy het dit die afgelope jaar of twee of dalk nie
As jy dit het 'n paar jaar gelede
wat baba stappe in die rigting van 'n piridien ken as MBC,
Model View Controller, en wat beteken dit?
Dit is wat ons sal weer dalk sien is net 'n manier van die begin
om skoon te maak van die ontwerp van 'n paar web-gebaseerde stuk sagteware,
of dit kan die kliënt kant gebaseer, asook, maar ons sal dit gebruik
in die konteks van PHP, sodat ons kan begin
meer komplekse te maak projekte en sorteer
afsonderlike verskillende tipes kode in die aansoek;
veral sodat wanneer ons het verskeie mense wat werk
op 'n projek dit is 'n baie makliker om lyne te trek.
So eerste laat ons 'n kyk na 'n sub-optimale manier
van die implementering van iets.
Dink ek wou 'n super te maak eenvoudige natuurlik webwerf vir 50
of enige ander klas, en daardie klas het dinge
soos lesings en 'n leerplan.
Ek kan iets doen, soos 'n H1 tag aan die bokant van my bladsy
en 'n On-geordende lys met li lys items in orde
om net 'n opsomming lys van menu opsies, so super eenvoudig.
So, hoe kan ons dit doen?
Wel, laat ek gaan in my terminale venster hier,
en sien dat Ek het 'n lees my en ons sal 'n skakel na hierdie kode
op die kursus se webblad in 'n bietjie,
en sien dat Ek het ' indeks dot htm - indeks dot PHP.
So laat my gaan voort en oop dat en seker genoeg dit is soort
dom dat dit selfs genoem PHP
want al wat ek het is 'n PHP kommentaar
en dan is alles anders is net rou HTML-kode.
Maar weereens is dit weergawe nul,
so 'n stap in die rigting iets meer interessant,
maar sien ek het hard gekodeer CS50 soos die titel, CS50 in die H1,
en nou het ek die lesings skakel,
nou het ek die leerplan skakel.
Alle reg, sodat nie lyk alles wat onredelik
totdat jy volg 'n skakel soos lesings, en jy besef
dat alles reg is dit anders inhoud, maar dit is soort
van dieselfde ding; dit is 'n titel van die bladsy en geordende lys.
Ek kliek week nul uit verlede jaar, en dit is soort
van dieselfde ding, 'n H1 tag en 'n On-geordende lys
en dan uiteindelik het ek kliek hierdie, en ek kry 'n paar blare,
wat is die skyfies van daardie spesifieke lesing.
So iets vertel my Ek is op die punt om ineenkrimp.
As ek oop lesings dot PHP kennisgewing
dis pretty much kopie en plak van die vorige lêer;
Ek het net die titel verander na H1, en wat hierdie skakels is.
Erger nog, as ek gaan in week nul dot PHP,
dit is dieselfde kopie plak werk
met net 'n bietjie inhoud tweaked.
So seker daar is 'n geleentheid hier om te verbeter,
en waarlik, dit behoort 'n Goeie reël;
wanneer jy voel jouself kopiëring
en plak iets meer as miskien een keer,
rooi vlae hopelik begin om te gaan.
Maar hoe gaan ons oor die verbetering van hierdie?
Wel, daar is 'n paar maniere, en die tegnieke wat jy kan gebruik
in PHP ontwikkel het oor tyd, maar laat ons probeer om hierdie een.
Laat my gaan in weergawe een, sodat die volgende iterasie van hierdie,
en laat ek probeer om te skoon te maak 'n bietjie.
Right, een van PHP eenvoudigste meganismes
vir die oplossing van hierdie probleem is die ou skool vereis funksie,
wat pretty much doen 'n afskrif en plak van die inhoud
van sommige lêer reg hier, soos c skerp sluit,
en ander tale baie soortgelyke konstrukte.
So dit lyk 'n bietjie vreemde nou,
dit is beslis nie 'n voltooi soek webblad,
maar vermoedelik wat is binnekant van kop dot PHP.
Al die ander dinge, regs, Die HTML tag, die hoof tag,
die titel tag, al die dinge wat bo-oor die hoof essensie
van die bladsy, wat waarskynlik net die on-geordende lys
en in die voet is waarskynlik soos die geslote liggaam tag,
die geslote html se etiket; mooi oninteressant
maar dupliserende dinge.
Alle reg, en seker genoeg as ek gaan
in kop-dot PHP is dit net soort van die wees fragment
uit die boonste, en as ek gaan in footer dot PHP,
dit is die weeskinders fragment van die onderkant,
en ek gebruik daardie selfde fragmente in my ander lêers,
soos lesings dot PHP.
Alle reg, so wat is beter oor hierdie, sou jy sê?
Ja?
>> Eenvoud.
>> Eenvoud?
Ek weet nie hierdie soort van die lyk 'n baie vreesaanjaend vir my nou nie, reg?
>> As ek wou verander jou opskrif, jy wil nie hê
om dit te verander in al die vorige soos lêers.
Jy moet net verander dit in jou kop.
>> Presies, so miskien in die sin dat dit makliker is,
Miskien Ek sal dit raam as dit net dit is makliker om dit by te werk.
Dit is miskien 'n bietjie skoner
omdat jy werk dit net op een plek.
So dit is mooi dwingende; Wat is 'n nadeel
van hierdie benadering of Watter probleem oorblyfsels
dat ons nie regtig opgelos?
Ja?
[Off Mic Kommentaar]
Ja, presies, ek bedoel, ek is nog kopieer en plak;
dit is 'n bietjie minder, maar ek het net opgetrek twee van hierdie lêers,
en hulle pretty much nog steeds lyk identies.
Daar was 'n benodig word op die top, 'n vereis aan die onderkant,
en 'n geordende lys in die middel
wat self nog struktureel dieselfde.
Verder, dit agterkom, as ek eintlik sien hierdie voorbeeld,
laat my gaan na weergawe Een nou,
en sien Ek het ' CS50 Lesing Syllabus.
Uh oh, CS50 Week Zero Week Een en CS50 Woensdag Vrydag,
Ek het soort van sny 'n hoek.
Wat was - wat was diegene titels voorheen?
[Off Mic Kommentaar]
Hulle was soos lesings in Week Zero, soos dit was soort
van sexier, en dit eintlik het 'n paar dinamika aan dit,
en dit is 'n soort van - ek is net soort van skrik nou
en net die veronderstelling dat die hele webwerf is CS50
en okay dit werk, maar dit is beslis nie as elegante
of as 'n soort van 'n reguit stuur soos dit eens was,
maar dit maak sin, want As jy kyk na indeks dot PHP
en lesings dot PHP en week nul dot PHP,
hulle is almal, insluitende dieselfde lêer,
So, hoe kan ons verbeter dit?
Wat is die volgende iterasie van hierdie kode waarskynlik gaan om te doen?
[Off Mic Kommentaar]
Ja, presies, so as - en laat my som
met ons in wese wil wat kop te parameteriseren
sodat ja daar is nog 'n hard gekodeer H1 tag nie, maar die dinge
tussen die oop en die noue tag,
is vermoedelik dinamiese en kom uit iets anders.
Miskien is die "kry string" of die ding na die vraagteken
in die URL was iewers anders, so laat ons neem 'n blik.
So as ek gaan in weergawe Twee,
nou sien dat ek het het 'n bykomende lêer,
dit lyk soos helpers dot PHP.
Ek weet nie regtig waar om te begin so ek gaan om te begin net
by indeks net soos altyd, en nou sien dit is 'n bietjie anders,
so ek het 'n 'line
aan die bokant wat helpers dot PHP,
maar ek kan dit noem wat ek wil,
maar nou sien line drie daar is 'n funksie oproep
kop te lewer, wat interessante net in so ver
as wat daar verby in Blykbaar het die persoonlike titel
vir hierdie spesifieke bladsy.
Intussen is daar lewer footer aan die onderkant,
en Ek hoef nie para daar is dit net
'n voet, maar nou lyk dit of daar
'n stap in die rigting om 'n beter wees oplossing, lewer kop neem,
en wat doen die vierkant hakies dui vir diegene
wat nie gesien het PHP ooit of in 'n rukkie?
[Off Mic Kommentaar]
Ja, dit is 'n skikking.
Dit is 'n assosiatiewe skikking of 'n gemors dat sleutels assosieer
met waardes; dit is soos Java Skrifte, beswaar notasie,
of ander tale, soortgelyke syntaxs.
Alle reg, so wat is in helpers dot PHP?
In helpers dot PHP is dit net 'n paar van die funksies,
lewer kop en lewer voet.
So 'n paar besonderhede Indien minder bekende,
So in die eerste van die feit
dat lewer kop neem 'n data argument wat blykbaar
aangestel om die leë skikking daar beteken wat?
Wat beteken dit gelykes te doen oop bracket gesluit bracket
as 'n parameter in PHP?
Dit is die standaard waarde.
So as ek in verskeidenheid nie slaag nie of enige argument hoegenaamd
aan die lewer kop of die lewer footer funksie,
Ek kan ten minste trust as die skrywer van die funksies
dat die data sal minimaal wees om 'n leë reeks;
dit sal nie ongedefinieer wees of vals is, of iets soos dit,
dit sal wees presies wat Ek het dit as 'n standaard.
Nou is dit 'n bietjie van 'n soort 'n hackish wyse van laai-simbole
in jou naam ruimte om so te praat,
maar dit werk mooi goed na hierdie einde
van die implementering van ons eie soort arm man se template enjin.
Alle reg, daar is 'n baie gereedskap daar buite vir Python Ruby
en PHP wat gee jou template vermoëns
en dit is presies wat ons wil hê.
Ons wil 'n sjabloon wat 'n H1 oop tag, 'n h1 tag gesluit,
en soort van 'n plek houer in die middel,
en ons wil daardie plek te vul houers deur middel van hierdie funksie,
so hierdie funksie onttrek net so gebeur
jy die volgende te gee vermoëns.
As jy het 'n assosiatiewe van skikking met die sleutel waarde pare
soos cat gelyk bar, uittreksel sal 'n plaaslike veranderlike skep
genoem effektief dollar-teken cat en gee dit 'n waarde van bar
sodat dit ontplof jou assosiatiewe verskeidenheid van sleutel waarde pare
in die nuwe veranderlikes met die ooreenstemmende waardes.
En dan vereis dot kop dot PHP is dieselfde as voorheen,
So, wat is ons waarskynlik gaan om te sien die binnekant van die kop dot PHP?
Dit is waarskynlik gekry het dat die H1 tag en die sluiting stag; wat gaan
wees binnekant van dit waarskynlik tussen dit?
[Off Mic Kommentaar]
Presies, daar is waarskynlik 'n paar melding van dollar-teken titel
en seker genoeg as ek zoom in op hierdie daar is my titel tag,
daar is my H1 tag, en binne dit is 'n dinamiese voeg
van die dollar teken titel nie, maar Net vir 'n goeie maatreël,
Ek doen hierdie HTML spesiale hef afgrijselijk vernoem
funksie, maar dit is nuttig; wat doen dit
of wat dit beskerm teen?
Dit is eintlik 'n oplossing 'n bedreiging jy sinspeel;
jy sou gelei het om ons te.
[Off Mic Kommentaar]
Presies, so as 'n kwaadwillige gebruiker of 'n niksvermoedende slagoffer
van 'n phishing-aanval klik op 'n skakel
wat in self het 'n vraagteken en iets soos cat gelyk,
En dan is die waarde van cat was eintlik
soos oop bracket script, geslote bracket,
en dan 'n paar JavaScript-kode;
As jy nie hierdie skakel lang belangrikste funksie,
jy eintlik sou besmet word rou HTML in jou webblad,
die gevolg van wat wat jy kan om die bos gelei word.
Jy kan net 'n onderkruiper die gebruiker in die uitvoering van JavaScript kode
dat hy of sy gedoen het eintlik nie van plan is.
En selfs al is gewoonlik jy net jouself seer,
soos net jy weet 'n idioot gaan om te tik
in 'n oop bracket script, geslote bracket, en sê waarskuwing
of iets soos dit en doen hom-of haarself
met 'n paar vreemde uitslag, as jy nie gekul te raak
in op 'n skakel wat rou JavaScript ingebed in dit
as die waarde van daardie eienskap,
jy kan onder andere iemand se koekies te steel
want daar is 'n eiendom genoem dokument dot koekie
in JavaScript wat u toelaat om 'n gebruiker se sessie koekie te gryp,
en as jy onthou wat 'n sessie kaping aanval is,
lang storie kort, dit is een manier eintlik tricking iemand
in die gee jy dat virtuele hand stempel en dan neem
oor hul Facebook rekening of 'n ander tipe rekening.
Alle reg, sodat dit is 'n bietjie lank,
maar dit is net die gebruik van rou HTML-kode.
Dit is die ekwivalent van die roeping van ECHO
of effektief te druk, en ons wese inbring
wat dinamiese.
So, wat meer hier bly?
Wel, laat ek gaan in Weergawe Drie hier,
en ons sal 'n bietjie sien 'n verskillende -
presies dieselfde lêer uitleg Maar let
dat ons hierdie keer gaan veralgemeen die kop-en voet
as templates, so wat ek bedoel?
Wat is die een ding dit is anders hier?
Wat het verander sedert die laaste weergawe?
Subtiele, maar dit is waarskynlik net 'n beter skoner ontwerp.
Ja?
[Off Mic Kommentaar]
Ja, daar is net een standaard lewer funksie;
Ek het nie spesiale geval lewer kop-of lewer voet,
wat albei as jy onthou uit die helpers dot PHP,
ons is pretty much dieselfde behalwe vir hul name
en die templates hulle ingesluit.
Waarom nie net parameteriseren die lewer-funksie
en neem 'n argument, dis die naam van die sjabloon,
en 'n tweede opsionele argument wat is die sleutel waarde pare
wat jy wil prop in
So as ek nou na helpers dot PHP kennisgewing
dat ek 'n bietjie liefhebber nou.
Ek is eintlik te keur nie die lêer bestaan ​​en indien wel, gaan voort
en dit vereis; net in geval die gebruiker per ongeluk tipes
in sommige valse sjabloon naam wat jy wil nie 'n fout te gooi
in die program, sodat ons kan minimaal doen hierdie
ten gunste van hier.
Alle reg, maar ons kan neem dit 'n stap verder?
In hierdie weergawe hier kennis van die volgende.
Ek het net getik LS, en wat onmiddellik spring
uit is ietwat anders.
So daar is twee dopgehou, reg,
en so is dit nou 'n stap in die rigting wat uiteindelik sal wees om 'n meer
behoorlike raamwerk.
Dit is 'n soort van slordige van my te wees gooi al
van my inhoud binnekant van 'n toeganklike openbare gids
wat letterlik openbaar genoem.
En selfs al is ongelukkig, 'n baie raamwerke,
ouer kinders veral en selfs 'n paar web poste,
Droom Host onder hulle kragte jy al jou lêers te sit
in die ekwivalent van 'n openbare gids selfs
As jou lêers al sluit databasis wagwoorde
en gebruikers name of ander sulke geloofsbriewe,
dit is glad nie 'n goeie ontwerp.
Baie beter net sit
in die openbare gids wat absoluut het
gebruiker toeganklik te wees, en alles
dat jy insluitende soos helpers dot PHP,
daar is geen rede dat moet web toeganklik via 'n
leser met 'n URL.
Dit mag wees heeltemal onskadelik Indien die gebruiker wil miskien sien
wat pare, maar dit is net die beginsel van dit,
en God verbied dit eintlik nie het 'n gebruiker naam en wagwoord;
jy wil nie die gebruiker per ongeluk
of doelbewus om staat is om dit te bekom.
So ons is nie heeltemal op 'n perfekte benadering hier,
maar kennis van die volgende nou.
In indeks dot PHP, sien dat Ek is nog steeds vereis helpers,
maar ek doen dit op so 'n manier dat ek soort van organisering van alle
van die lêers wat sal ingesluit word
in 'n subdirectory genoem konvensionele sluit,
en dan noem ek lewer vir kop-en voet as voorheen.
Dus is die enigste ding Ek het dit gedoen is 'n soort
van herorganiseer my dopgehou 'n bietjie meer anale te wees
oor die lêer struktuur.
Maar as ons nou na hierdie vyfde byvoorbeeld,
sien hier dat ons nou 'n trio van dopgehou,
en dit is 'n bietjie misleidend op die oomblik
want vir eenvoud ter wille van die klas,
Ek het net gegooi alles
in John Harvard se Openbare Gids net
sodat ons dit kan navigeer via 'n leser nie, maar kennis -
ignoreer hierdie deel net vir 'n oomblik,
die feit dat ek daar.
Let daarop dat ek het drie subdirectories: openbare,
voorlegte, en sluit.
Die idee is nou dat in 'n behoorlik opgestel web bediener ek
sal vertel Apache dat dit webwerf het die publiek toeganklik
lêers hier en nêrens anders nie.
So, wat dink jy lêer Ek gaan binne-in sien
van openbare as ek tik LS?
Wat is ten minste een lêer dit is waarskynlik in daar?
[Off Mic Kommentaar]
Goed indeks dot PHP, en wat lêer is natuurlik nie
daar onder andere?
Soos helpers dot PHP, kop dot PHP, voet dot PHP;
al die fragmente, al die funksies
wat nie regtig nodig om die publiek toeganklik wees,
dit moet bruikbaar te wees deur die lêers
wat die publiek toeganklik is, maar hulle,
Geen gebruiker behoeftes om te sien of katern 'n URL vir helpers dot PHP.
Let daarop dat in plaas as ek gaan
in sluit daar helpers dot PHP,
en as ek kom in templates,
daar is footer en header dot PHP.
Die waarheid te sê, ek kon gestel het hulle in dieselfde gids,
maar ek probeer om te wees, selfs meer anale oor die behoud van lêers
wat net soort van statiese templates verskillende
van funksionele lêers soos helpers dot PHP,
en ek is net te hou by 'n paar redelik algemene konvensies
roeping van die dopgehou sluit en templates.
Dus is die enigste ding wat verander is dan weer die pad.
As ons gaan hier sien dat ek net nou
'n relatiewe gids te sluit,
dot dot streep sluit helpers dot PHP,
of ek kan 'n bietjie meer wees behoorlike en eintlik iets doen
soos hierdie, PHP en 'n baie
van tale hierdie spesiale simbole
wat verteenwoordig die huidige lêer se gids,
so beklemtoon onderstreep rig beklemtoon onderstreep verteenwoordig
watter gids is van hierdie lêer,
en so as jy net koppel met die dot-operateur, wat,
wat sou bereik dieselfde resultaat,
en is geneig om 'n bietjie meer wees robuuste want jy kan kry
in situasies met relatiewe dopgehou het net gesê dot
of dot dot kan eintlik bring jy na die verkeerde plek,
so dit is geneig om te wees 'n bietjie meer robuuste.
Alle reg, so wat bly egter?
Wat doen jy nog steeds nie graag oor hierdie?
Wat verbeter kan word en jy kommentaar op dit vroeër Ek dink
dat daar nog 'n paar kwessies?
[Off Mic Kommentaar]
Reg, ons het vir seker nie om te begin skryf soos webwerwe
wat lyk soos hierdie, reg?
Dit voel nie alles wat baie beter,
daar is nog kopieer plak.
Ek het nog steeds die vereis lyn aan die bokant.
Ek het nog steeds lewer kop lewer voet.
Daar is 'n baie van duplisering.
Ja?
[Off Mic Kommentaar]
Ja, presies, so ons het geneem 'n stap in die rigting soort van verdeel
die "c" van die "V", sodat MVC is Model View Controller;
kontroles is 'n soort van die brein van die aansoek.
Model is geneig om die data te wees of 'n paar gedeelde funksies,
en die lig is geneig om die wees estetika, die sjabloon,
so ons het 'n stap in die rigting geneem skeiding van die "c" van die "V"
omdat ons nou ten minste Gids hierdie sjabloon se,
Maar selfs daar het ons in wese het een beheerder per lêer.
Dit lyk nie asof daar veel logika hier aan die gang,
maar indeks dot PHP is effektief 'n kontroleerder.
Wanneer jy na 'n URL en eindig in indeks dot PHP,
al die logika wat implemente wat is reg
in indeks dot PHP, en Dieselfde geld vir lesings dot PHP.
Dieselfde vir week nul dot PHP.
Dus het ons soort van strone ons logika al oor die plek,
en dit voel soos dit nie gaan
baie goed skaal wanneer ons het nie, maar vier en veertig bladsye
As elke bladsy begin met my kopiëring van 'n ouer weergawe
van die lêer en net die opstel van 'n
van die inhoud binnekant van dit.
Dus het ons slegs geneem 'n stap in die rigting van hierdie,
en een van die instrumente ons sal stel
Woensdag is 'n Formeerder genaamd "Laravel"
en dit is baie gewilde PHP raamwerk
ander kinders sluit "Fuelphp."
Daar is 'n ouer een genoem "CodeIgniter."
Daar is 'n sogenaamde "koek."
Daar is 'n sogenaamde "Simfonie."
Ek bedoel as jy Google PHP raamwerke,
daar is 'n gruwelike aantal soos raamwerke
dat mense wat geïmplementeer.
Laravel is een van die meer up en toetreders;
dit is een van die skoner kinders, en jy sal vind
wat uiteindelik help dit red jou nogal 'n bietjie
van tyd, selfs al is daar 'n bietjie van 'n leerproses,
maar dat ons sal lei jy oor op Woensdag.
Verder sal ons voer wat genoem word 'n "ORM."
In hierdie geval, sal ons gebruik iets wat kom
met hierdie raamwerk genoem Laravel.
Dit is die naam "welsprekende" en dit is net 'n laag van die kode
wat jou toelaat om onder andere dinge te praat met databasisse.
En ook hier, laat my steel 'n voorbeeld wat óf onlangse
of 'n throwback vir sommige van julle van 50.
As jy het om 50, en jy het "CS50 Finansies,"
jy lêers kan onthou dat jy skryf of herskryf wat lyk
soos hierdie, dit was login dot PHP, en in die tyd,
veral omdat ons het nie veel tyd spandeer
op fundamentele PHP vroeg op,
hierdie dalk self het redelik uitdagend,
en so het ons gedoen het, in werklikheid, probeer om die ontwerp te vereenvoudig.
Ons het nie regtig skei "M" van "V" van "C" alles wat veel
vir probleme wat "Sewe CS50 Finansies,"
maar kennis van die een ding wat moet hopelik begin
binnekort vryf jy die verkeerde manier, is iets soos hierdie.
Ek bedoel, nie net was dit teken dot PHP 'n beheerder.
Dit is ook direk praat
'n databasis wat spesifiek gebruik opvolger, wat nie gaan
baie goed skaal toe jy begin om te werk met 'n
of twee of drie vennote.
Byvoorbeeld, as een van Die vennote is verantwoordelik
vir die skep van jou databasis tabelle en kom
met jou indekse en die besyfering
uit te vind wat die sleutel moet wees, is die primêre sleutels, die vreemde sleutels,
en alles, besluit oor die tafel name en al van dat.
Nou het jy die ander persoon in die groep moet almal om te weet
van die ontwerp besluite te neem wat hy of Sy het, en wat jy nou nodig
om hard te code daardie besluite in jou lêer, so nou is hy
of sy mooi baie beperkte
om nooit weer verander diegene tafel name.
Nooit weer te verander diegene geliasseer name
sonder om jou.
Verder, jy kan nie regtig maklik werk op dieselfde lêer
sonder 'n botsing met mekaar as hy
of sy voortdurend name verander,
en jy het die ou weergawes en so meer,
So dit is net te nooi baie, baie van hoofpyn.
Verder, soos ons sal sien voor lank,
selfs al is jy nie nodig het
om veral te doen gesofistikeerde navrae hier,
Sodra jy begin met verskeie tafels, twee tafels, drie, vyf,
tien tafels in 'n MySQL of algemeen 'n relasionele databasis,
jy het die tafels om aan te sluit dikwels as bekende, en jy het
data te kombineer uit een met die ander,
en eerlik jou opvolger navrae begin meer en meer te kry,
en meer en meer komplekse, en dit net begin
'n baie makliker om te kry foute te maak
en 'n baie moeiliker om te kry dinge reg.
En so gereedskap soos Welsprekende en ORM gaan
om ons te help om ons model data en dit is ook effektief gaan
die kode te genereer dat ons nodig het om te begin bevraagteken databasisse
in meer gesofistikeerde maniere.
So as jy het 'n primêre sleutel hier en 'n vreemde sleutel
hier, al wat jy nodig te doen, is om te leer dat ORM,
Beswaar verband Mapper, wat die verhouding is
en dit sal uit te vind wat navrae uit te voer vir jou.
En slegs in seldsame gevalle het jy nodig
noodwendig skryf opvolger kode jouself.
As jy regtig wil verfyn iets,
maar vir die grootste deel, kan jy net begin behandel entiteite
in jou databasisse as ware voorwerpe en nie die plat rye
dat jy een of ander manier moet bou en de normaliseer.