Pas de database: het creëren van een tabel

, aangepaste database: het creëren van tabel 1,,,,,,,,,,,, hoofdstuk 6,,,,,,, het netwerk van delen van maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' dit artikel niet missen, is een reeks voor de gewoonte in de database zegt dat een deel van de databank. Aanpassen: veiligheid op de eerste plaats, in deze reeks worden gebruikt in onze database.Zullen we het hebben over het creëren van, het onderhoud en de schrapping van de lijst, en hoe de veilige, efficiënte, toe te voegen, te schrappen en vraag de gegevens.In het eerste artikel, we kijken als omschreven in tabel kan worden gebruikt, en het creëren van voor - en nadelen van tabel.,, gelukkig is. Het voorziet in een aanzienlijke API, het creëren en aanpassen van de interactie tussen de tabel een beetje simpel.Het meest opmerkelijk is, $wpdb:, klasse en, dbdelta (), functionele, we zien meer in de reeks.Desondanks, het creëren van een aangepaste tabel creëren buitenlandse wordpress - wat verlies je de meeste lokale kader rond de tafel.Om deze reden, als je de « plug­in » auteur is verantwoordelijk voor de veiligheid en de doeltreffende interactie met het.Dus, je moet goed nadenken of het meer geschikt is voor het gebruik van bestaande kern.,, met behulp van een aangepaste vorm, de nadelen, zoals hierboven vermeld, op tafel zitten buiten het kader van de normale wordpress, is het belangrijkste deel van de nadelen van de fundamentele reden:,, geen lokale toe te voegen, te schrappen, vernieuwing, onderzoek, enz. Interactie met desktop, gebruikersinterface (bijna) vereist is voor de bouw van krabben, ontsmetting en je geld is (hoewel wordpress biedt in dit opzicht veel hulp), andere toevoegingen, wordpress zelf, niet naar je tafel daar.Aan de andere kant, als je gegevens is een gewoonte in dit type - en dan de meest zorgvuldig opgebouwde derde plug - ins zal aan de kant, ook veel andere relevante « Je back - up of de uitvoer van je lijst.(in feite niet de kern van de back - up - steunen, maar het is niet zo makkelijk, input /output), jij bent verantwoordelijk voor je op een structuur opgezet (s) op de meest doeltreffende wijze, met inbegrip van de keuze van de meest geschikte soort gegevens, die verantwoordelijk is voor de opstelling van de Vrijheid en de fout van je hoge vraag, als het creëren van. Een aangepaste tabel nodig?Op dit punt niet het juiste antwoord op de beoordeling van de voor - en nadelen, die van essentieel belang zijn.Maar op een dag, wordt een overzicht gegeven van een aantal ernstige tekortkomingen, geen gebruik te maken van de bestaande wordpress kader, als je het niet zeker weet, is het het beste om te voorkomen dat het creëren van een tabel.Bovendien, de gewoonte tabel methode is veel werk, en het biedt voldoende mogelijkheden om de fout in kruipen.Maar met dat idee, als een op een passend is?Tabel van de aangepaste structuur van de gegevens, en een van de belangrijkste parameters nodig is, als de gegevens op deze manier te bouwen, die niet geschikt is voor de tafel., * * * * * * * _posts, tabel is in wezen voor artikelen en pagina 's en misschien helemaal niet geschikt zijn voor je gegevens.In feite, je kan de beste gegevens worden verspreid over verschillende tafel, en de relatie tussen hen.Het kan zelfs niet is complex: post 2 posten in de tabel voor de opslag, het gebruik van de aard van de relatie tussen veel veel.Op dit punt kan het gebruik van grondstoffen, de indeling (is) of een element van grondstoffen, maar deze twee zijn bijzonder effectief, maar de kleinere sites, maar misschien is het niet geschikt is voor de omvang van de boete.Scribu mobiele posten voor de uitvoering kan worden omschreven in tabel 2 van de opslag van een informatie - en in de meeste gevallen, "knijpen", * * * * * * * _posts, na gebruik van element vormen, dat niet kan worden door de meest doeltreffende manier om na de tabel: met behulp van een niet - indexering van de waarden van het opslaan van gegevens.Dit is ongelooflijk snel herstel van de metagegevens (wordpress na zijn ook hier het gebruik van metagegevens tabel) maar is inefficiënt en complexe vraag kan bijna niet mogelijk is, een ingewikkelde vraag, de complexe vraag, waarin de lokale tabel niet kunnen afmaken.In een van de organisatoren van de gebeurtenissen, bijvoorbeeld, is een gebeurtenis van een datum is opgeslagen in een afzonderlijke tabel.Maar het kan na de datum van deze opslag van deze incidenten - is er meer dan één datum zal de vraag zeer moeilijk en inefficiënt - met name door de dollar opgenomen, ongeacht de datum waarop de waarde van niet - index, de omvang, het gebruik van wp_posts, en als je, je gegevens voldoende groot (100 000 + post) en dan, misschien, van invloed zal zijn op de de prestaties, het hangt ervan af hoe je je lopen zoeken.Met betrekking tot het eigen argument is nogal zwak, echt veel onbekenden, die van invloed zijn op de doeltreffendheid.In het algemeen, de database in wat ze doen en zorgen voor optimale wordpress kader rond de vraag zo snel mogelijk.Echter, in combinatie met de andere twee factoren van de omstandigheden, vind je misschien een gewoonte in de tabel is de meest verstandige keuze, het creëren van tafel, als je beslist gebruik tabel nodig is, moeten we de tafel.Voordat we het behoud van onze gewoonte is de naam van de tafel, $wpdb,.Deze wereldwijde bevat alle informatie, voor de huidige (het blog van plaats naar plaats, wanneer het gebruik van meerdere locaties).Zullen we onze naam toegevoegd aan de wereld.Dit is helemaal niet nodig, maar het maakt ons een beetje netjes voor de rest van de code, add_action ("-", "wptuts_register_activity_log_table" 1); add_action ("switch_blog", "wptuts_register_activity_log_table"); wptuts_register_activity_log_table (functie) (Global $wpdb; $wpdb - > wptuts_activity_log = "($wpdb - > het voorvoegsel} wptuts_activity_log";}, de code met behulp van $wpdb - > - op tafel, voorafgegaan.- is de standaard, wp_, maar kunnen de gebruikers in de wp-config. PHP veranderen.Dit is nodig, je kan meer dan één wordpress gebruiken dezelfde database, maar het is ook mogelijk dat andere redenen veranderd.Dus je kunt niet nemen voor, wp_,.Zoals de functie, de klasse en de instellingen, je moet zorgen dat je de naam van de lijst is uniek. In deze serie, we gaan terug naar het volgende voorbeeld.We zouden voorstellen, we zijn het creëren van een tabel voor de registratie van de activiteiten van de gebruiker (bijgewerkt of schrappen, verandering van omgeving, foto 's, enz.), kolom naamgevingsconventies, er zijn verschillende overeengekomen voor hoe je de naam van je lijst (en je tafel) - maar hoe je het noemen ze, het is belangrijk is, met eenparigheid van stemmen.Ik adviseer in kleine letters, omdat in sommige gevallen kan hoofdlettergevoelig zijn naam, en de uitvoering van de regels die fout niet mogelijk, de verbetering van de leesbaarheid.We zullen in de volgende serie ook nuttig als je moet witte een rij.Je moet alleen de woorden (bijvoorbeeld, elders genoemd noch elders onder begrepen, post_data, de leesbaarheid, post_content), maar je moet worden benadrukt dat, nooit, ruimte, je moet ook gereserveerd.Als de kolom betekent dat buitenlandse tabel dan gebruik je de naam van de kolom voor buitenlandse (bv. User_id, ons voorbeeld), in ons geval, zullen we zeggen dat we 'log_id log id,,,,, user_id, - als in hun logboek, overeenkomend met de gebruikers - id en activiteiten. - de activiteiten die plaatsvinden object_id.,,, - de id van het voorwerp, zoals een id, user - ID' s, maken id, enz.), voor de gebruikers van de voornaamste activiteiten van de object_type,,, - de aard van het voorwerp (zoals de "na", de "gebruiker" en de "Opmerkingen", enz.), datum en tijd, activity_date - activiteiten, het besluit van de aard van de kolom,.,, voordat je gaat, je moet beslissen of je een lijst van de aard van de gegevens.Lijst van soorten kunnen worden onderverdeeld in drie categorieën: touw, nummer en datum.Voor elke vele variaties.Je kan hier een volledige verwijzing, is het belangrijk om te kiezen voor de juiste aard van de gegevens om invloed uit te oefenen op je horloge, aangezien dit van invloed zou zijn op de efficiëntie van de vraag voor je.Wat de aard van de gegevens mag je een limiet van (bijvoorbeeld varchar (40), waardoor je opslag van ten hoogste 40 tekens).Deze beperking is facultatief, maar de voorstellen ter verbetering van de prestaties, want het kan... Dus je moet beslissen in elke kolom vermelde maximale hoeveelheid karakter zou hebben.De lengte van de digitale gegevens is het aantal niet verwijst naar de grootste aandacht (bijvoorbeeld, in (10), biedt de mogelijkheid tot 10 - cijferige integer, tot 4294967295) als datum van opslag, je moet altijd datetime (opslag van gegevens vormen, voor 2012, op 5 november 14:55:10) en natuurlijk niet de vriendelijke datum (zoals dat op 5 november 2012 2:55pm).De waarde van de datetime, gemakkelijk kunnen worden ingedeeld in de menselijk leesbare vorm gebruik te maken van de functie van mysql2date ().Je moet het behoud van de datum in de UTC - tijd, indien nodig, over te schakelen op de output van een verschillende tijdzones, in ons geval, we hebben log_id:,,, - bigint (20), en user_id, - bigint (20), en activiteiten - varchar (20), object_id bigint (20, -), object_type varchar (20), - -, datum, tijdstip, de indexering van de kolommen, dan moet je beslissen welke kolom index - deze zal worden uitgeroepen, de sleutel, s, één van hen is, de sleutels.In lijn met de sleutel, unieke, en meestal alleen een automatische verhoging van de bedragen, is in wezen "lijnen", andere registers opgenomen waarden kan niet de enige, maar de waarde moet worden bepaald met een relatief kleine opname.Dat is de vraag. Lezen.Als er geen sprake is van een index, de zoektocht moet door de hele tafel te zoeken.Als een kolom wordt geïndexeerd en onderdeel van de vraag, dan is het snel kunnen vinden met de rij, rij dan, kleine subgroep (naar analogie van de vraag kunnen controleren is een boek van de index).Als een groot aantal gegevens en "geslacht" bevat dezelfde waarde, omdat het niet om een volledige SCAN (dat een woord, die op de andere pagina 's op een woord INDEX), vrijheid is niet opgenomen in de belangrijkste verklaring:,, vermindering van prestaties te schrijven (metafoor, je moeten de nieuwe index als toevoeging of schrapping van het woord,), dus je moet beslissen wat het juiste evenwicht is voor je geregeld.Meer informatie is te vinden in de hier, omdat het zeer waarschijnlijk is dat de vraag van de gebruiker (we zien we hun recente activiteiten) index opgenomen en het gebruik van log_id, als een eerste belangrijke, het creëren van tafel, we gaan een gewoonte van de code in de vorm van de volgende functies:, wptuts_create_tables () {///////de functie van het creëren van een tabel van de code ga hier} ///////- register_activation_hook tabel (activering van het __file__, "wptuts_create_tables"); dat deze functie moet worden genoemd in verband met de activering van een « plug­in », en als we willen geen wijzigingen Tabel - bijvoorbeeld de toevoeging of verandering van de gegevens (kolom soort zullen we later in de reeks van redenen, in feite, gebruik) activering van de haak, wPtuts_create_tables (), dat als de tabel is, niet de toezicht - en nogmaals, we zullen in de volgende serie bevat waarom, de functie van binnen, we zijn wp-admin /met /upgrade.php en het opzetten van een constante en de functie van de belasting, dbdelta ().Dat, wanneer een plug - in het missen van ondernemers, worden geactiveerd, haak, dus, wptuts_register_activity_log_table (), moet met de hand noemen, require_once (abspath. "Met inbegrip van de beheerder /WP /upgrade.'/library/loader.php'); de $wpdb; de charset_collate dollar; ///////noemt dit de hand die we gemist hebben de ondernemers haak wptuts_register_activity_log_table (); de door de lokale, charset_collate dollar, met inbegrip van wordpress tabel tekenset worden gebruikt en de afwerking.Los van deze definitie, karakter van de code en hoe ze in vergelijking met wordpress is in veel verschillende talen is belangrijk om gebruik te maken van de juiste ruim je bureau, naast de consolidatie, moet de naam van SQL aangifte, en elke kolom, van het type en de standaardwaarden en een lijst van de sleutel, de sleutel, met inbegrip van kolom.Het gaat meestal in de vorm van een tabel [naam], [zijn] de sleutel bigint (20) symbool niet leeg auto_increment opgenomen benamingen, [] [] [de] gegevens vormen, ([naam.]), de belangrijkste key_name ([naam]) [aan]; het creëren van deze tabel, We het volgende toevoegen aan onze, wptuts_create_tables (). Functie:, sql_create_table dollar = "het creëren van een tabel ($wpdb - > wptuts_activity_log} (log_id bigint (20) van de auto_increment symbolen niet leeg, user_id bigint (20) symbool niet leeg standaard" 0 "(20) van de standaard varchar is niet leeg." update ", object_id bigint (20) symbool van niet - standaard" 0 "leeg, object_type varchar (20) is niet leeg na de datum van activity_date niet standaard.- 00: 00: 00 0000-00-00 schending ", de sleutel, de sleutel user_id (log_id) (user_id)) charset_collate dollar;"; dbDelta ($sql_create_table);,, dbdelta (), de functie van onze bevelen uitvoeren, het creëren van tafel.Het kan voor het SQL is erg streng.Bijvoorbeeld, waar moet er twee ruimten, de sleutel en de centrale kolom.En de sleutel moet een naam geven, als je je beter, activering worden gevonden, je onverwachte output... X karakter, foutmeldingen kunnen een fout in je verklaring.Soms is dit te wijten aan, dbdelta (), strenge eisen.Als je bij wp_die (); dbdelta (), na het doden, verwerking (en wp_debug% quot% is vastgesteld.% quot%) wordt vermeld, een foutmelding, geeft een overzicht van de in dit artikel hebben we kijken waarom je moet en mag niet worden gebruikt op een reden, en moet rekening worden gehouden met De laatste details en het creëren van een tabel.Het volgende deel van deze reeks voor ontsmetting, naar de SQL en hoe je jezelf kunt beschermen tegen hem.In dit artikel is in de code kan Github bibliotheek voor reeks blijven werken.,, de middelen, de aard van de gegevens van mysql: behoud van mysql, bepalingen en tabel opgenomen, mysql: indicatoren van de Codex: het creëren van een vorm van mysql, plug - in de Codex, $wpdb, klasse,



Previous:
Next Page: