Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuidas erineb morftomaanis andmebaasi struktuuri osas morfedbymany


Kuidas erineb morftomaanis andmebaasi struktuuri osas morfedbymany


Erinevus Laraveli polümorfsetes paljude suhetes on erinevus morphtomany ja `morphedbymany" vahel peamiselt nende rollides suhetes ja kuidas andmebaasi struktuur neid toetab.

Andmebaasi struktuur polümorfses paljude-paljudes

Polümorfsed paljude ja paljude suhted hõlmavad kolme peamist tabelit:

- Kaks mudeli tabelit (nt postitused ja sildid)
- üks vahepealne pöördetabel (nt `TagGables`)

Pivoti tabel sisaldab vähemalt kolme veergu:

- `Tag_id` (seotud mudeli ID, nt silt)
- `TagGable_id` (sildiga seotud mudeli ID, nt postitus või video)
- `TagGable_type` (seotud mudeli klassi nimi või tüüp, nt` App \ Models \ Post` või `App \ Models \ Video`)

See struktuur võimaldab ühel pöördetabelil seostada mitut erinevat mudelit ühise mudeliga (sel juhul sildid), vajamata iga mudeli kombinatsiooni jaoks eraldi pöördetabeleid [5] [9].

`morphtomany" roll

- kasutatakse mudelil, mis "omab" või "on" polümorfne suhe.
- Määratleb seose mudeli vaatenurgast, mis on seotud paljude teiste mudelitega.
- Näiteks kasutab "Meetod" Morphtomany "" Morphtomany "" Morphtomany ", et saada kõik selle postitusega seotud sildid.
- See meetod täpsustab seotud mudeli ja "morphinimi" (nt "" TagGable' "), mis vastab pöördetabeli veergudele (` TagGable_id "ja" TagGable_type ").
- See küsib pöördetabeli filtreerimist praeguse mudeli ID ja tüübi järgi, et leida seotud mudeleid [5] [9].

morphedbymany roll

- kasutatakse mudelil, mis on polümorfse suhte sihtmärk.
-Määrab polümorfse paljude ja paljude suhte pöördkülje.
- Näiteks kasutage kõigi selle sildiga seotud postituste või videote saamiseks kasutage mudelis "TAG" mudelis nagu "Posts ()` või "videod ()` `morphedbymany".
- See täpsustab seotud mudeliklassi ja sama morf -nime, mida kasutatakse `morphtomany`.
- See meetod küsib pöördetabeli filtreerimist seotud mudeli tüübi ja ID -ga, et leida kõik seda tüüpi mudelid, mis on seotud praeguse mudeliga (tag) [5] [9 9].

Andmebaasi tingimuste erinevuste kokkuvõte

- `morphtomany` kutsutakse mudelile, mis on seotud paljude teistega, ja see kasutab pöördetabeli veerge` TagGable_id` ja `tagGable_type`, et filtreerida kirjeid, kus` tagGable_type` vastab praeguse mudeli klassile.
- `morphedbymany` kutsutakse mudeliga, mis on seotud (pöördvõrdeline), ja see kasutab pöördetabelit, et leida kõik konkreetset tüüpi mudelid, mis on seotud praeguse mudeliga.

Mõlemad meetodid kasutavad sama pöördetabeli, kuid erinevad nende esindatud suhte suunas. Pivoti tabel jääb samaks, nendega seotud mudeli ID ja tüübi veerud, võimaldades ühe tabeli kaudu mitmeid mudelitüüpe polümorfselt ühendada.

Sisuliselt määratleb `morphtomany` seose" lapsevanema "või" omamise "mudeli poolel, samal ajal kui" morphedbymany "määratleb pöördvõrdelise seose" seotud "mudeli poolelt, mõlemad tuginevad samale polümorfsele pöördetabeli struktuurile [5] [9] [1].

Tsitaadid:
]
]
]
]
[5] https://laravel.com/docs/11.x/eloquent-rationships
[6] https://docs.octobercms.com/3.x/extend/database/relations.html
]
]
]