Továrne a seda sú nástroje používané v správe databáz, najmä v kontexte vývoja softvéru na generovanie a vyplnenie testovacích alebo počiatočných údajov do databáz. Pomáhajú automatizovať a zefektívniť proces vytvárania údajov na testovanie alebo nastavenie aplikácií. Zvládajú však vzťahy medzi modelmi úplne odlišne kvôli ich odlišným účelom a mechanizmom.
Továrne sa primárne zameriavajú na generovanie jednotlivých alebo súvisiacich modelových inštancií s náhodnými alebo preddefinovanými atribútmi, ktoré často využívajú knižnice Faker. Na druhej strane sú semenáry viac o spustení série pokynov na vyplnenie databázy s akýmikoľvek potrebnými údajmi, ktoré môžu zahŕňať viac modelov a ich vzťahy.
Definícia a účel
Továrne sú navrhnuté tak, aby ľahko a dôsledne vytvorili individuálne alebo súvisiace inštancie modelu s falošnými údajmi. Umožňujú vývojárom definovať plány modelov, čo určuje, ako by sa mali atribúty vyplniť, a umožniť generovanie mnohých inštancií tohto modelu na testovanie alebo databázové nasadenie. Továrne často pracujú izolovane alebo s veľmi jasnými vzťahmi medzi modelmi, ktoré sa zameriavajú na atribúty a existenciu modelových inštancií.
Semenáre slúžia ako skripty alebo triedy, ktoré môžu volať továrne alebo priame inzercie databázy na vyplnenie databázy. Semenári sú holistickejšie a procedurálnejšie, kontrolujú poradie a logiku tvorby údajov. Zaisťujú, že populácia údajov sa stane v správnej sekvencii, aby sa udržala integrita údajov, najmä ak sa zapoja viac závislých tabuliek.
zaobchádzanie s vzťahmi v továrňach
V modelových továrňach sa vzťahy zvyčajne riešia definovaním vzťahov v továrňových definíciách samotných. Napríklad, ak má užívateľský model vzťah k individuálnemu vzťahu s profilovým modelom, továreň používateľa môže definovať, že „má„ profil “prostredníctvom metód vzťahu alebo spätných volaní, ktoré budú generovať a pridružiť súvisiace profily pri vytváraní používateľov.
Továrne môžu vložiť relačnú logiku tak, že keď sa továreň na model použije na vytvorenie inštancie, automaticky vytvorí a priradí súvisiace inštancie modelu v tej istej operácii. Toto sa často robí pomocou metód ako „ha ()`, `for ()` alebo vlastné spätné volanie vzťahov, ktoré generujú súvisiace modely. Tento prístup uľahčuje testovanie, pretože súvisiace údaje sa vytvárajú transparentne popri hlavných údajoch modelu.
zaobchádzanie s vzťahmi v sedeneroch
Semenári používajú továrne, ale organizujú celkový tok a poradie tvorby. Pretože nasadenie môže zahŕňať zložité vzťahy, sejače zvyčajne riadia vzťahy tým, že zabezpečujú vytvorenie rodičovských modelov pred detskými modelmi, aby vyhovovali obmedzeniam databázy (napr. Cudzie kľúče). Napríklad vo vzťahu, v ktorom používateľ patrí do organizácie, sedeners vytvorili organizáciu najskôr a potom vytvorili používateľa s príslušným zahraničným kľúčom, ktorý sa spája s organizáciou.
Semenári môžu manipulovať alebo koordinovať vytváranie údajov v akomkoľvek poradí a kombinovať jednoduché alebo zložité súbory údajov, niekedy s explicitným spracovaním cudzích kľúčov alebo otočných tabuliek v mnohých medzi mnohými vzťahmi. Často sa zaoberajú orchestráciou, za ktorú továrne nezodpovedajú, ako je napríklad rozhodovanie o sekvencii naočkovania, aby sa splnili pravidlá integrity údajov vo viacerých tabuľkách.
Zložitosť vzťahov a vzory
Továrne zvyčajne definujú jednoduché alebo vnorené modelové vzťahy pomocou vstavaných metód, ktoré generujú súvisiace záznamy na požiadanie. Zameriavajú sa na operácie atómového tvorby vytvárania modelu a jeho bezprostredných vzťahov v jednom volaní. Napríklad továreň pre používateľa môže definovať vzťah k automatickému vytvoreniu viacerých príspevkov alebo profilu, ktorý patrí používateľovi, a vygeneruje vnorenú štruktúru modelov podobných modelu.
Semenáče musia výslovne definovať, ako sa údaje súvisia s možnosťou mnohých modelov v správnom poradí. Najprv by mohli vytvoriť všetky organizácie, potom všetci používatelia (priraďovať používateľov s organizáciami), a potom vytvoriť príspevky prepojené s používateľmi. Tento príkaz sa musí zachovať, aby sa uspokojilo obmedzenia zahraničných kľúčov. Semenáky tiež spracovávajú zložité scenáre, ako je podmienečné nasadenie, očkovanie založené na prostredí alebo vytváranie údajov, iba ak už neexistuje.
Vzťahy s mnohými
Viac sa zaoberá manipuláciou s mnohými vzťahmi. Továrne to abstraktne umožňujú vytváranie vzťahov pomocou tovární na otočnú tabuľku alebo metódami, ako je `acte ()„ v lavera, často vo vnútri továrnej definície alebo po vytvorení továrne. To uľahčuje generovanie pridružených modelov a ich prepojenie s údajmi ošípaných automaticky.
Semenári medzitým výslovne koordinujú veľa prepájania mnohým k dispozícii tým, že najprv vytvoria inštancie oboch modelov, a potom vyvolávajú vložky na otočné tabuľky, a to buď prostredníctvom výrečných metód vzťahu alebo priamymi databázovými dotazmi. Semenáre riadia populáciu otočných tabuliek prepojením ID a možno pridaním ďalších dátových polí otočných otáčok, čím sa zabezpečí, že databáza odráža správne intermodelkové pripojenia.
Závislosti zahraničného kľúča
Továrne často riadia závislosti zahraničných kľúčov v rámci svojich definícií. Ak továreň vytvorí model, ktorý závisí od iného, môže hniezdiť továrne, ktoré automaticky vygenerujú rodičovské alebo súvisiace modely. Tento prístup znižuje riziko odkazovania na neexistujúce záznamy a zefektívňuje vytvorenie platných súborov údajov na testovanie.
Semenári musia explicitne zvládnuť závislosti na zahraničných kľúčoch a často si vyžadujú starostlivé usporiadanie tabuľkovej populácie, aby tieto obmedzenia rešpektovali. V semenároch je obvyklé najprv vytvoriť rodičov alebo referenčné modely, potom použiť svoje primárne kľúče na prepojenie závislých modelov. Semenári teda pôsobia ako orchestrátory riadiaci tok databázovej populácie, pokiaľ ide o relačnú integritu.
Opätovné použitie a zloženie
Továrne sú vysoko použiteľné a zložené. Môžu byť definované raz a použité na vytvorenie samostatných inštancií alebo súvisiacich inštancií so špecifikovanými vzťahmi opakovane, podporujú testovacie pracovné toky alebo opakované generovanie semien s variantmi.
Semenáre majú tendenciu byť viac procedurálnymi skriptmi, menej opakovane izolovane, často sa zameriavajú na konkrétny scenár populácie dátovej populácie alebo nastavenie prostredia. Vyvolávajú sa však továrne ako stavebné bloky a zostavujú tieto výzvy v zmysluplnom poradí, aby vytvorili komplexné dátové prostredie.
Transakcie a izolácia
Továrne vytvárajú inštancie zvyčajne izolovane alebo ako súčasť jediného továrneho hovoru, ktoré by sa mohli zabaliť do transakcie na testy, ale zvyčajne nie. Zameriavajú sa na generovanie modelu a jeho vzťahov naraz.
Semenáre často zabaľujú sekvencie veľkých dát populácie v databázových transakciách, aby sa zabezpečilo, že celá operácia naočkovania uspeje alebo zlyhá, čo zabráni čiastočným alebo poškodeným údajom v súvisiacich tabuľkách. Tento transakčný prístup je nevyhnutný, keď semenári riadia viac vzájomne prepojených modelov a vzťahov.
Výhody a prípady použitia
Používanie tovární pre vzťahy je výhodné v scenároch, ktoré si vyžadujú rýchle a izolované generovanie testovacích údajov alebo v rámci samotných testov. Zjednodušujú tvorbu súvisiacich modelov bez manuálneho zásahu a umožňujú vývojárom zamerať sa na testy namiesto ručných nastavení údajov.
Semenáre sú uprednostňované pre nastavenie prostredia, počiatočnú populáciu dát alebo zložité scenáre nasadenia, v ktorých objednávka a logika populácie databázy vrátane viacmodeových závislostí a dodržiavania obchodnej logiky. Semenári vyvolávajú továrne a priame databázové operácie, aby poskytli plne pripravený stav databázy pre vývoj alebo inscenáciu.
Praktický príklad
Zvážte vytvorenie používateľov a ich príspevky:
- S továrňami je možné v továrni na používateľa definovať vzťah k automatickému vytváraniu príspevkov, takže keď je používateľ vytvorený prostredníctvom továrenského priestoru, súvisiace príspevky sa vytvárajú automaticky.
- Vďaka sejačkám semenára najprv vytvára používateľov používajúcich továreň na používateľa. Potom, samostatne, používa továreň Post Factory na vytváranie príspevkov a ich explicitne spája s používateľmi v slučke alebo dávke, čím zabezpečuje referenčnú integritu.
Továrne sa zameriavajú na zapuzdrenie logiky vzťahov vo vnútri samotného procesu vytvárania modelu. Semenáre sa zameriavajú na orchestráciu a objednávanie, ktoré zaisťujú konzistentný celkový stav databázy.
Zhrnutie
Továrne zvládajú vzťahy vložením logiky tvorby vzťahu v rámci továrenských definícií, čo umožňuje automatické, vnorené vytváranie súvisiacich modelov. Pri generovaní jednotlivých alebo malých súprav súvisiacich modelov podporujú jednoduchosť a opätovné použitie, ktoré sú ideálne na testovanie a rýchle falošné generovanie údajov.
Semenáre zvládajú vzťahy organizovaním poradia a toku úplných pracovných procesov populácie databáz a zabezpečujú vytváranie súvisiacich modelov v konzistentnom poradí a s platnými zahraničnými kľúčmi. Používajú továrne ako stavebné bloky, ale rozširujú zodpovednosť za riadenie komplexných závislostí medzi modelu, údaje špecifické pre životné prostredie a transakčnú konzistentnosť v celej operácii naočkovania.
Rozdiel spočíva v úrovni abstrakcie: továrne sa zameriavajú na individuálny model a jeho okamžité generovanie relačných údajov, zatiaľ čo sadenice koordinujú inicializáciu údajov celej databázy, riadenie závislosti a vzťahov modelu v širšom rozsahu. Toto rozlíšenie je dôvod, prečo továrne deklaratívne definujú vzťahy a semenári implementujú procedurálnu logiku na spoľahlivé naplnenie týchto vzťahov v skutočnom databázovom prostredí.