>> To begin ponti kio povus esti via sola sperto
kun ttt programadon, kion mi pensis mi ŝatus fari estas ŝteli paro
de ekzemploj ke vi eble vidis en 50
se vi prenis lin la pasinteco jaro aŭ du aŭ ne havi
se vi prenis lin antaŭ kelkaj jaroj
ke estas bebo paŝojn direkte al a piridina scias kiel MBC,
Modelo Montru Controller, kaj kion signifas tio?
Jen ni vidos denove eble estas nur formo de ekkuro
purigi la dezajno de iu ttt-bazita peco de programaro,
aux gxi povus esti kliento flanko bazita tiel, sed ni uzu ĝin
en la kunteksto de PHP, tiel ke ni povos komenci
fari pli kompleksajn projektoj kaj varo
de apartaj malsamaj tipoj de kodo ene de la apliko;
aparte tiel ke kiam ni havi plurajn homojn laborante
en projekto estas multe pli facile desegni linioj.
Do unue ni preni rigardas subóptima vojo
de efektivigo de io.
Supozu mi volis fari super simpla kurson retejo por 50
aŭ ajna alia klaso, kaj tiu klaso havas aĵojn
kiel prelegoj kaj Syllabus.
Mi povus fari ion kiel h1 etikedo ĉe la supron de mia pagxo
kaj neordigitan liston kun Le listeroj en ordon
por simple havi bula listo de menuo opcioj, do super simpla.
Do kiom eble ni faru tion?
Nu, permesu al mi iri en mian terminalfenestro ĉi tie,
kaj rimarki ke mi hvas legitaj mi kaj ni ligas al ĉi tiu kodo
en la kurso de afiŝinto en iom,
kaj rimarkis ke mi havas indekso dot htm - indekso dot php.
Do lasu min antaŭeniri kaj malfermi tio, kaj tute vere estas afabla
de stulta, ke tiu eĉ nomis php
ĉar ĉio, kion mi havas Estas php komenton
kaj tiam ĉio alia Estas nur krudan HTML-kodo.
Sed denove ĉi estas versio nulo,
tial paŝo al io pli interesa,
sed rimarkis mi forte coded CS50 kiel la titolo, CS50 en la h1,
kaj nun mi havas la prelegoj ligas,
Nun mi havas la Syllabus ligilo.
Enorde, do kiu ne ŝajnas ĉiuj, ke senkaŭza
ĝis vi sekvu la ligilon kiel prelegoj, kaj vi konscias,
ke ĉiuj rajtas ĝi estas malsamaj enhavo sed estas speco
de la sama afero; ĝi estas titolo de la paĝo kaj neordigitaj listo.
Mi klaku semajno nulo de lasta jaro, kaj gxi estas ia
de la sama afero, kiel h1 tag kaj neordigitan liston
kaj tiam fine mi klakas tiu, kaj mi alvenas al iu folio,
kiu estas la diapozitivoj de ke apartan prelegon.
Do io diras al mi, Mi estas al cringe.
Se mi malfermas prelegoj dot php avizo
ke estas sufiĉe da kopio kaj algluota el la antaŭa arkivo;
Mi ĵus ŝanĝis la titolon al h1, kaj kion tiuj ligoj estas.
Malbona tamen, se mi foriras en semajno nulo dot php,
ĝi estas la sama ekzemplero paston job
kun nur iomete da enhavo tweaked.
Do certe tie estas ŝanco ĉi tie por plibonigi,
kaj certe tio devus esti bona regulo de thumb;
anytime vi sentos mem kopiado
kaj alglui ion pli ol eble iam,
ruĝaj flagoj devus espereble komenci pafi.
Sed kiel ni iru pri plibonigo de tio?
Nu, ekzistas kelkaj manieroj, kaj la teknikoj oni povas uzi
en php evoluis super tempo, sed ni provu ĉi tiu.
Permesu al mi iri en Versio unu, tial la sekva ripeto de tio,
kaj mi provos purigi ĝin iom.
Ĝuste, unu el php la simpla mekanismojn
por solvi ĉi tiun problemon estas la malnova lernejo postulas funkcion,
kiuj preskaux faras kopion kaj alglui la enhavon
de iu dosiero ĝuste ĉi tie, kiel c estas akraj inkluzivi,
kaj aliaj lingvoj havas tre similaj konstruoj.
Do ĝi aspektas iom stranga nun,
ĝi estas definitive ne estas kompletigi rigardante retpaĝo,
sed supozeble kio estas interne de kaplinio dot php.
Ĉiuj de la aliaj aferoj, dekstra, La html-etikedo, la kapo etikedo,
la titolo etikedon, ĉiuj aĵoj kiu estis super la ĉefa esenco
de la paĝo, kiu estas argumenteble nur la ordigita listo,
kaj en la piedlinio probable estas kiel la fermita korpo etikedo,
la fermita html La etikedo; bela seninteresa
sed duplicative vazaro.
Enorde, kaj certa sufiĉa, se mi foriras
en kaplinio dot php estas nur speco de la orfo fragmento
de la supro, kaj se mi iru en piedlinio dot php,
ĝi estas la orfoj Fragmento el la fundo,
kaj Mi uzas tiujn samajn fragmentoj en miaj aliaj dosieroj,
kiel prelegoj dot php.
Enorde, do kio estas bona pri ĉi tio vi diros?
Jes?
>> Simpleco.
>> Simpleco?
Mi ne konas ĉi tiun specon de serĉas multe pli timinda al mi nun, ĉu ne?
>> Se mi volis ŝanĝi vian kaplinio, vi ne havus
ŝanĝi ĝin en la tuta antaŭa kiel dosierojn.
Vi nur ŝanĝi ĝin en via kaplinion.
>> Precize, do eble en ke senco ĝi estas pli simpla,
eble mi dirus enmarcarla kiel ĝi estas ĝuste tio estas pli simpla por ĝisdatigi ĝin.
Ĝi estas eble iom pli pura
ĉar vi ĝisdatigos tio en nur unu loko.
Do jen bela konvinka; kio estas malavantaĝo
de tiu alproksimiĝo aŭ kia problemo restaĵojn
ke ni ne vere solvita?
Jes?
[Off Mic Komento]
Jes, ĝuste, mi pensas, mi estas ankoraŭ kopiado kaj interglui;
ĝi estas iom malpli, sed mi nur tiris supren du de tiuj dosieroj,
kaj ili preskaux ankoraŭ rigardis identaj.
Okazis repostulos el la supre, oni postulas ĉe la malsupro,
kaj neordigitan listo en la mezo
kiu mem estis ankoraŭ Strukture la sama.
Plie, rimarki, se mi reale vidi ĉi tiu ekzemplo,
lasu min iri al Versio Unu nun,
kaj rimarki Mi havas CS50 Prelego Syllabus.
Uh oh, CS50 Semajno Nulo Semajno Unu kaj CS50 merkredo vendredo,
Mi speco de tranĉi angulo.
Kio estis - kia estis tiujn titolojn antaŭe?
[Off Mic Komento]
Ili estis kiel prelegoj en Semajno Nulo, kiel ĝi estis afabla
de sexier, kaj tio efektive havis iun dinamismon al ĝi,
kaj ĉi tiu estas speco de - mi nur speco de punting nun
kaj ĝuste supozante ke La tuta paĝaro estas CS50
kaj bone funkcias, sed estas certe ne kiel eleganta
aŭ kiel speco de rekta plusendu kiel iame estis,
sed tio sencas, ĉar se vi rigardas indekso dot php
kaj prelegoj dot php kaj semajno nulo dot php,
ili estas ĉiu inkludante la sama dosiero,
do kiel ni povas plibonigi tion?
Kio estas la proksima ripeto de tiun kodon probable faros?
[Off Mic Komento]
Jes, ĝuste, do se - kaj mi resumus
kun ni esence volas al parameterize ke kaplinio
por ke jes ankoraŭ estas hard coded h1 etikedon, sed la aĵoj
en inter la malferma kaj la mallarĝa etikedo,
Estas supozeble dinamika, kaj venanta el io alia.
Eble la "get kordo" aŭ la afero post la demandosigna
en la URL-iris ien alie, do ni rigardu.
Do, se mi iros en Versio Du,
nun rimarkas ke mi havas ricevis plia dosiero,
Ĝi aspektas kiel helpantoj dot php.
Mi ne vere scias kie komencu do mi tuj komencos simple
ĉe indekso ŝatas kiel ĉiam, kaj nun rimarki ĝi estas iom malsama,
do mi hvas postulas linio
ĉe la supro postulanta helpantoj dot php,
sed mi povas nomi ĝin kion ajn mi volas,
sed nun rimarkas linio tri tie estas funkcio alvoko
por repagi kaplinio, tio estas interesa nur tiom
kiel kio aprobotaj en Ŝajne, la kutimo titolo
por tiu ĉi aparta paĝo.
Intertempe ekzistas redonu piedlinio ĉe la malsupro,
kaj mi ne bezonos neniu _parameterization_ tie estas nur
a footer, sed nun ŝajnas
esti unu paŝon al pli bona solvo, redonu kaplinio portas,
kaj kion faru la kvadrato krampoj indikas por tiuj
kiuj ne vidis, php iam aŭ en tempon?
[Off Mic Komento]
Jes, estas tabelo.
Ĝi estas asocieca tabelo aŭ kradon kiu asocias ŝlosilojn
kun valoroj; ĝi estas kiel Java Skriptoj, sedo skribmaniero,
aŭ aliaj lingvoj, simila syntaxs.
Enorde, do kia estas en helpantoj dot php?
En helpantoj dot php estas nur paro de funkcioj,
redonu kaplinio kaj redonu piedlinio.
Do kelkaj detaloj se malpli familiara,
do unue la fakto
ke redonu kaplinio prenas datumoj argumento kiu estas ŝajne
atribuis la malplena tabelo tie signifas kion?
Kion tio signifas fari egaluloj malferma krampo fermita krampo
kiel parametron en php?
Ĝi estas la defaŭlta valoro.
Do, se mi ne pasas en tabelo aŭ ajnan argumenton ajn
al la redonu kaplinio aŭ la redonu piedlinio funkcion,
Mi povas almenaŭ konfidon, kiel la aŭtoro de tiuj funkcioj
ke datumoj volas minimume esti malplena tabelo;
ĝi ne estos senvalora, nedefinita aŭ falsa, aŭ ion similan,
tio estos precize kio Mi donis gxin kiel defaŭlta.
Nun tiu estas iom de ia a hackish vojo de ŝarĝo simboloj
en via nomo spaco por tiel diri,
sed ĝi funkcias sufiĉe bone kun tiu celo
de efektivigo de nia propra speco de povrulon templating motoro.
Enorde, tie estas multa iloj por tie por Pitono Rubeno
kaj php kiuj donos al vi templating kapabloj
kaj tio estas ĝuste kion ni volas.
Ni volas ŝablonon kiu havas h1 malferma etikedon, oni h1 fermita etikedo,
kaj varo de loko posedanto en la mezo,
kaj ni volas plenigi tiuj lokon posedantoj per vojo de tiu funkcio,
do ĉi tiu funkcio ĉerpi ĝuste tiel okazas
doni al vi la sekvan kapablojn.
Se vi havas asocieca de tabelo kun ŝlosilo valoro paroj
kiel foo egalas trinkejo, ekstrakto kreos loka variablo
nomas efektive dolaro signo foo kaj doni al ĝi valoron de trinkejo
do ĝi eksplodas via asociaj tabelo de klavo valoro paroj
en novajn variablojn kun la respondaj valoroj.
Kaj poste postulas dot kaplinio dot php estas la sama kiel antauxe,
do kion ni probable irante vidi internon de kaplinio dot php?
Ĝi estas verŝajne got that h1 etikedon kaj la mallarĝa etikedo; kio okazas
por esti ene de ĝi probable en inter ĝi?
[Off Mic Komento]
Ĝuste, estas probable iuj mencio de dolaro signo titolo
kaj, efektive, se mi zomi sur ĉi tie estas mia titolo etikedo,
tie estas mia h1 etikedon, kaj interne de ĝi estas dinamika inserción
de dolaro signo titolo, sed ĝuste por bona mezuro,
Mi faras ĉi html speciala ŝarĝi atrociously nomata
funkcio, sed estas utila; kion faras ĝi fari
aux kia ghi protektas kontraŭ?
Tiu estas fakte solvo al minaco vi sugestante;
vi estus kondukis nin al.
[Off Mic Komento]
Precize, do se malica uzulo aŭ konfiditaj viktimo
de phishing atako alklakis ligilon
ke en propra esis demandosigno kaj io kiel foo egalas,
kaj tiam la valoro de foo estis efektive
kiel malferma krampo skribsistemo, fermita krampo,
kaj tiam iuj kodo JavaScript;
se vi ne nomas tiun longa ĉefa funkcio,
vi estus reale esti infekti krudan HTML en vian retpaĝon,
la rezulto de kiu estas ke vi povus esti trompita.
Vi eble povas trompi la uzanto en ekzekuti JavaScript kodo
ke li aŭ ŝi faris Ne vere intencas.
Kaj eĉ se kutime vi nur vundi vin,
kiel nur vi konas idioto tuj tajpi
en malferma krampo skripton, fermita krampo, kaj diru garde
aŭ io simila kaj faru al li aŭ si
en iuj strangaj elnodiĝo, se vi get trompita
en klakante ligilon kiu havas kruda JavaScript enigita en ĝi
kiel la valoro de tiu atributo,
vi povas interalie ŝteli ies kuketojn
ĉar tie estas propraĵo vokis dokumenton dot kuketon
en JavaScript kiu permesas vin ekpreni uzanto kunsido kuketo,
kaj se vi memoras, kion oni kunsido kidnapo atako estas,
longan rakonton mallonga, tio estas unu vojo de reale trompante iu
en donante al vi, ke virtuala mano ringo kaj tiam prenante
super iliaj Facebook konton aŭ iu alia tipo de konton.
Enorde, do ĉi estas iom longa,
sed ĝi simple uzas krudan HTML-kodo.
Tiu estas la ekvivalento de vokanta eĥo
aŭ presi efike, kaj ni esence enmeto
ke dinamike.
Do kio plu restas tie?
Nu, permesu al mi iri en Versio Tri ĉi tie,
kaj ni vidos iom malsamaj -
sama ĝusta dosiero aranĝo sed avizo
ke tiu tempo ni tuj ĝeneraligi la ĉapon kaj piedlinio
kiel ŝablonojn, do kion cxu mi celas per tio?
Kio estas unu afero tio estas malsama ĉi tie?
Kio ŝanĝiĝis ekde la lastan version?
Subtila, sed ĝi estas defendeble nur bonan purigilon dezajno.
Jes?
[Off Mic Komento]
Jes, tie estas nur unu norma redonu funkcio;
Mi ne speciala okazo redonu header aŭ repagi piedlinio,
ambaŭ de kiuj, se vi revokon de helpantoj dot php,
ni estas preskaux identa krom iliaj nomoj
kaj la ŝablonoj oni inkludas.
Kial ne simple parameterize la redonu funkcio
kaj prenu unu argumento, ke estas la nomo de la ŝablono,
kaj dua opcia argumento kiuj estas la ŝlosilo valoro paroj
ke vi volas plug in
Do, se mi nun rigardu helpantoj dot php avizo
ke mi estante iom amatoro nun.
Mi vere kontrolanta faras la dosiero ekzistas kaj se jes iri antaŭen
kaj punu lin; ĉiaokaze la uzanto hazarde tipoj
en kelkaj blufa ŝablono nomo vi ne volas ĵeti eraro
en la programo tiel ni povas minimume plenumu ilin ĉi
favoras tie.
Enorde, sed ni povos prenu ĉi paŝo pli?
En ĉi tiu versio tien rimarki la jenan.
Mi ĵus tajpis ls, kaj kio tuj saltas
ekstere estas iom malsama.
Do ekzistas du dosierujojn, Dekstre,
kaj tiel ĉi tio estas nun pasxo al kio eventuale esti pli
taŭga kadro.
Tio estas speco de fuŝa mi devas ĵeti la tutan
de miaj enhavon ene de Publike alireblaj dosierujon
kiu laŭvorte estas nomata publika.
Kaj kvankam bedaŭrinde, multe da kadroj,
pli aĝaj speciale, kaj eĉ iuj ttt afiŝojn,
Sonĝo Host inter ili, fortoj ke vi metas ĉiujn viajn dosierojn
en la ekvivalento de publika dosierujo eĉ
se viaj dosierojn multobligita inkluzivi datumbazo pasvortoj
kaj uzanto nomoj aŭ aliaj tiaj akreditaĵojn,
tio tute ne bone dezajno.
Multe pli bone estas nur meti
en la publika dosierujo kio absolute havas
esti uzanto atingebla, kaj ĉion alian
ke vi estas inter kiel helpantoj dot php,
estas nenia kialo, ke tiu devus esti retejo alirebla tra
retumilo kun URL.
Ĝi povus esti tute senefika se la uzanto volas vidi eble
kiuj paroj, sed ĝi estas nur la principo de ĝi,
Kaj Dio gardu reale faras havas uzantan nomon aŭ pasvorton;
Vi ne volas la uzanto hazarde
aŭ intenca esti kapablos aliri ĝin.
Do ni ne estas tute ne perfekta alproksimiĝo ĉi tie,
sed rimarki la jenan nun.
En indekso dot php, rimarki ke Mi ankoraŭ postulanta helpantoj,
sed mi faras ĝin en tia maniero ke mi estas ia organizado ĉiuj
de la dosieroj, kiuj estos inkludita
en subdosierujo nomita konvencie inkludas,
kaj tiam Mi nomas repagi por header kaj footer kiel antaŭe.
Do la sola afero Mi jam faris estas speco
de reorganizi mian dosierujojn esti iom pli anal
pri la dosiero strukturo.
Sed se ni nun iru al tiu kvina ekzemplo,
rimarki tie ke ni nun havas trio de dosierujoj,
kaj tio estas iom iluzia ĉe la momento
cxar pro simpleco pro klaso,
Mi ĵus jxetita ĉio
en John Harvard Publika Directory nur
tiel ni povas navigi gxin per navegador, sed avizo -
ignori tiun parton por nur momente,
la fakto, ke mi estas en tie.
Rimarku, ke mi havas tri subdosierujoj: publikan,
ŝablonojn, kaj inkluzivas.
La ideo nun estas, ke en bone agordita retservilo mi
rakontadis Apache, ke tiu retejo havas publike atingebla
Dosieroj ĉi tie, kaj nenie alie.
Do kio dosieron vi opinias Mi iras vidi interne
de publiko se mi tajpas ls?
Kio estas almenaux unu dosieron tio estas probable en tie?
[Off Mic Komento]
Okay indekso dot php, kaj kion dosiero estas evidente ne
en tie inter aliaj?
Kiel helpantoj dot php, kaplinio dot php, piedlinio dot php;
ĉiuj el la fragmentoj, tuta funcionalidad
ke tio ne vere bezonas esti publike alirebla,
ĝi bezonas esti uzebla per la dosierojn
kiuj estas publike alirebla, sed ili mem,
Neniu uzanto bezonas vidi aŭ quire URL por helpantoj dot php.
Rimarku, ke anstataŭ se mi foriras
en inkluzivas ekzistas helpantoj dot php,
kaj se mi iros en ŝablonoj,
ekzistas piedlinio kaj header dot php.
Sincere, mi estus povinta meti ilin en la sama dosierujo,
sed mi provas esti eĉ pli anal pri konservante dosierojn
ke estas nur ia statika ŝablonoj malsamajn
el funkcia dosierojn kiel helpantoj dot php,
kaj mi simple aliĝi al iu sufiĉe komuna konvencioj
vokas la subdosierujoj inkludas kaj ŝablonoj.
Do la sola afero ke ŝanĝis tiam estas denove la vojon.
Se ni iras tien rimarki ke mi nun simple devas
inkludi parenco dosierujo,
dot dot oblikvo inkluzivas helpantoj dot php,
aŭ mi povas esti iom pli propra kaj efektive ion fari
kiel tiu, php kaj multe
de lingvoj havas tiujn specialajn simbolojn
kiuj reprezentas la aktuala dosiero dosierujo,
tiel substreki substreko dir substreki substreko reprezentas
kion ajn dosierujon Estas de cxi tiu dosiero:
kaj do se vi nur concatenate kun la skalara operatoro, ke,
ke sukcesus la saman rezulton,
kaj emas esti iom pli fortika ĉar vi povas akiri
en situacioj kun relativa dosierujojn estis nur diras dot
aŭ dot dot povas reale konduku al la malĝusta loko,
tial tiu emas esti iom pli fortika.
Enorde, do kio kvankam restaĵojn?
Kion do vi ankoraŭ ne ŝatis pri ĉi tiu?
Kio povus esti plibonigita kaj vi komentis pri ĝi pli frue mi kredas
ke estas ankoraŭ iuj aferoj?
[Off Mic Komento]
Ĝuste, verŝajne ni ne havas komenci skribante kiel retejoj
kiuj aspektas kiel ĉi, ĉu ne?
Tiu ne sentas cxio, kio multe pli bone,
tie ankoraŭ kopii pasto.
Mi ankoraŭ havas la postulas linio je la supro.
Mi ankoraŭ devas repagi kaplinio redonu piedlinio.
Estas multe de duobligo.
Jes?
[Off Mic Komento]
Jes, ĝuste, do ni prenis treti al ia forkiĝanta
ĝis la "c" el la "v", do MVC estas Modelo Montru Controller;
regilo estas speco de la cerbojn de la aplikaĵo.
Modelo emas esti la datumoj aŭ iuj dividitaj funkcioj,
kaj vido emas esti la estetiko, la ŝablonon,
do ni nun elektis paŝo al disigante la "c" el la "v"
ĉar ni nun almenaŭ havi ĉi ŝablono estas dosierujo,
sed eĉ tie ni esence havi unu regilo por dosiero.
Ĝi ne aspektas kiel ekzistas multa logiko okazas ĉi tie,
sed indekso dot php estas efektive controlador.
Kiam vi vizitos URL kaj finante en indekso dot php,
ĉiuj de la logiko ke implementa tiu paĝo estas gxusta
en indekso dot php, kaj sama por lekcioj dot php.
La sama por semajno nulo dot php.
Do ni ia strone nia logiko tuta loko,
kaj li sentas kiel ĉi tio ne tuj
grimpi tre bone unu fojon ni havas ne kvar, sed kvardek paĝoj
se ĉiu paĝo komenciĝas per mi kopias malnovan version
de la dosiero kaj justa tweaking iuj
de la enhavo en ĝi.
Do ni nur prenita pasxo al tiu,
kaj unu el la iloj ni devos enkonduki
merkredon estas kreinto nomis "Laravel"
kaj tio estas tre populara php kadro,
aliaj inkludas "Fuelphp."
Ekzistas malnova unu nomata "Codeigniter."
Tie estas unu nomata "Kuko".
Tie estas unu nomata "Simfonio."
Mi volas diri, se vi Google php kadrojn,
tie estas tiom hororaj numeron de kiel kadroj
ke homoj kiuj implementado.
Laravel estas unu el la pli supre kaj comers;
ĝi estas unu el la purigisto karaj, kaj vi trovos
kiuj finfine helpas savu vin sufiĉe
el tempo kvankam ekzistas iom da lernado kurbo,
sed ke ni gvidos vi super merkrede.
Plie, ni devos enkonduki kio nomiĝas "ORM."
En ĉi tiu kazo, ni uzos iu kiu venas
kun tiu kadro vokis Laravel.
Ĝi nomiĝas "elokventaj" kaj ĉi tio estas nur tavolo de kodo
kiu permesas vin inter aliaj aferoj paroli datumbazoj.
Kaj ĉi tie tro, permesu al mi sxtelos Ekzemplo kiu estas ĉu freŝaj
aŭ throwback por kelkaj el vi for 50.
Se vi prenos la 50, kaj vi faris "CS50 Financoj,"
vi eble memoras dosieroj vi skribas aŭ reverkis aspektantaj
kiel tiu, tiu estis ensaluto dot php, kaj en la momento,
speciale de kiam ni ne pasis multe da tempo
sur php fundamentojn frue,
eble tio mem havas estis sufiĉe malfacilaj,
kaj tial ni faris, fakte, provi simpligi la dezajno.
Ni ne vere apartigi "M" el "V" de "C" ĉiuj kiuj multe
por problemoj kiuj "Sep CS50 Financoj,"
sed rimarki la unu afero kiuj devus espereble starti
frue froti vi malĝustan vojo, estas io kiel tio.
Mi volas diri, ne nur estis ĉi ensaluti dot php controlador.
Ĝi estis ankaŭ parolas rekte
al datumbazo specife uzante sekvo, kiu ne iras
grimpi tre bone kiam vi komencos labori per unu
aŭ du aŭ tri paroj.
Ekzemple, se unu el la partneroj estas respondeca
por krei vian datumbaza tabloj kaj venantan
kun via indeksoj kaj imagante
el kio la ŝlosilo devus esti, la primara klavoj, la eksterlanda klavoj,
kaj ĉiujn kiuj, elektante la tablon nomojn kaj ĉiuj tion.
Nun vi la alia persono en la grupo bezonas scii ĉiujn
de la dezajno decidoj li aŭ ŝi faris, kaj vi nun bezonas
malmolaj kodo tiuj decidoj en vian dosieron, do nun li
aux sxi estas bela multe retenis
neniam denove ŝanĝi tiuj tablo nomoj.
Neniam denove ŝanĝi tiuj enarkivigitaj nomoj
sen informi vin.
Plie, vi ne povas vere facile labori sur la sama dosiero
sen kolizii reciproke, se li
aŭ ŝi estas konstante ŝanĝi nomojn,
kaj vi havas la malnovajn versioj kaj tiel plu,
tial cxi tiu estas nur inviti sunaj kaj multajn kapdolorojn.
Plie, kiel ni vidas antaŭ longe,
kvankam vi ne bezonas
fari aparte malnaiva pridemandojn ĉi tie,
iam vi komencos havi plurajn tabloj, du tabloj, tri, kvin,
dek tablojn en MySql aŭ ĝenerale rilata datumbazo,
vi devas aliĝi al tiuj tabloj Ofte se familiara, kaj vi devas
kombini datumojn de unu kun la alia,
kaj sincere via sekvo pridemandojn komencu akiri plu, kaj plu,
kaj plu, kaj plu kompleksa, kaj ĝi nur komenciĝas
akiri multe pli facile fari erarojn
kaj multe pli malfacile preni tion rajton.
Kaj tiel iloj kiel Elokventa kaj ORM tuj
helpi nin modeli niaj datumoj kaj ĝi estas ankaŭ efektive irante
generi la kodon, kiun ni bezonas komenci informpeti datumbazoj
en pli kompleksaj formoj.
Do se vi hvas primara ŝlosilo super tie kaj fremdan ŝlosilon
super cxi tien cxiuj bezonas fari estas instrui ke ORM,
Object Rilato Mapper, kion tio interrilato estas
kaj gxi estos elkompreni pridemandojn ekzekuti vin.
Kaj nur en maloftaj kazoj vi bezonas
nepre skribos sekvo kodo mem.
Se vi vere volas delikata melodio ion,
sed por la plej granda parto, vi povas nur komenci trakti estaĵoj
en via datumbazoj kiel vera celoj kaj ne tiuj plata vicoj
ke vi iel bezonas rekonstrui kaj _de_ normaligi.