Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Mitkä ovat morftomaanin yleiset käyttötapaukset Laravelissa


Mitkä ovat morftomaanin yleiset käyttötapaukset Laravelissa


"Morphtomany" -suhdetta Laravelissa käytetään monien monien polymorfisten suhteiden määrittelemiseen, jossa useilla malleilla voi olla suhde yhden mallityypin kanssa polymorfisen välitaulukon kautta. Tämä mahdollistaa monien eri mallien joustavan assosiaation yhteiseen malliin tarvitsematta erillisiä kääntötaulukoita jokaiselle malliparille.

Yleiset käytön tapaukset `morphtomany` -sarjassa Laravelissa

** 1. Merkitsemisjärjestelmät
Yksi yleisimmistä käyttötapauksista on merkitsemisjärjestelmän toteuttaminen, jossa useita eri malleja (esim. Viestit, videot, sivut) voidaan merkitä samoilla tunnisteilla. Sen sijaan, että sinulla olisi erilliset kääntötaulukot jokaiselle malli-tag-suhdelle, "MorphTomany" mahdollistaa kaikkien tunnisteiden tallentamisen yhtenä `TAGS` -taulukkoon ja siihen liittyvän polymorfisesti mihin tahansa malliin.
Esimerkiksi sekä `postilla` että` video` -malleilla voi olla `TAGS ()` -menetelmä, jossa käytetään `morphtomany` tagien noutamiseen, ja` Tag` -malli voi käyttää `morfedbymany` saamaan kaikki viestit tai videot, jotka on merkitty [1] [5] [9].

** 2. Erilaisten sisältötyyppien luokittelu
Samankaltainen kuin tunnisteet, luokat voidaan jakaa eri sisältötyyppeihin. Esimerkiksi sekä artikkeleita että tuotteita on ehkä luokiteltava, ja monien monien välinen polymorfinen suhde antaa heille mahdollisuuden jakaa luokkia ilman tarpeettomia taulukoita.

** 3. Tarrojen tai määritteiden määrittäminen useille malleille
Jos sinulla on tarroja, määritteitä tai ominaisuuksia, joita voidaan soveltaa eri malleihin (esim. Käyttäjät, tilaukset, tuotteet), "MorphTomany" -sovelluksen avulla voit yhdistää nämä tarrat joustavasti mihin tahansa mallityyppiin.

** 4. Käyttäjäroolit tai käyttöoikeudet useissa käyttäjätyypeissä
Sovelluksissa, joissa on useita käyttäjätyyppejä (esim. Järjestelmänvalvoja, asiakas, toimittaja), roolit tai käyttöoikeudet voidaan määrittää polymorfisesti käyttämällä `morphTomany` niin, että roolit hallitaan yhdessä taulukossa, mutta liittyvät eri käyttäjämalleihin [1].

** 5. Kommenttien tai liitteiden yhdistäminen useisiin malleihin monella tavalla
Vaikka kommentit ovat usein yksi-moniin polymorfisia, voi olla skenaarioita, joissa useita kommentteja tai liitteitä liittyy useisiin malleihin monella tavalla. "Morphtomany" voidaan käyttää tällaisten suhteiden mallintamiseen.

Kuinka `morphtomany` toimii

- Se käyttää yhtä kääntötaulua, esim. "Taggables", sarakkeilla `tag_id`,` taggable_id` ja `taggable_type`.
- `Taggable_ID` ja` taggable_type` -sarakkeet antavat Laravelille mahdollisuuden määrittää, mihin malli tunniste liittyy.
- Aiheeseen liittyvissä malleissa (esim. "Post`," video ") määrittelet menetelmän, joka palauttaa` $ this> morphTomany (tag :: luokka, 'taggable') `.
- TAG` -mallissa määrittelet käänteiset suhteet käyttämällä `morfedbymany ': tä, jotta kaikki tietyn tyyppiset mallit liittyvät kyseiseen tunnisteeseen [1] [5].

Yhteenveto

`Morphtomany` on ihanteellinen, kun haluat yhdistää useita malleja yhteiseen malliin moniin moniin polymorfiseen muotiin. Sitä käytetään laajasti järjestelmien merkitsemiseen, luokitteluun, roolin määrittämiseen useissa käyttäjätyypeissä ja kaikissa skenaarioissa, joissa monilla eri malleilla on yhteinen joukko liittyviä malleja ilman, että jokaiselle parille tarvitaan erillisiä kääntötaulukoita.

Tämä lähestymistapa yksinkertaistaa tietokannan suunnittelua ja koodin ylläpitämistä keskittämällä polymorfiset moniin ja moniin suhteisiin yhdeksi tyylikkäästi rakenteeksi.

Viittaukset:
[1] https://blog.logrocket.com/polymorphic-relationships-laravel/
.
[3] https://stackoverflow.com/questions/57522923/how-to-use-morphTomany
.
[5] https://laravel.com/docs/11.x/eloquent-relationshipshipship
.
.
.
[9] https://laraveldaily.com/post/laravel-polymorphic-many-to-many-get-all-related-records