ilişki türleri

Laravel Nova’da ilişki türleri arasındaki farkları ve kullanım örneklerini:

HasOne: Bir tabloyla başka bir tablo arasında tekil (one-to-one) ilişki kurar. Örneğin, bir Kullanıcı profili ve kullanıcılar tablosu arasında:

HasOneOfMany: Tekil bir kaynağa bağlı birden çok kaynak arasından birini seçmek için kullanılır. Örneğin, tekil bir kullanıcı ve birden çok adres arasında:

HasMany: Bir tabloyla başka bir tablo arasında çoklu (one-to-many) ilişki kurar. Örneğin, bir Kullanıcı ve birden çok gönderi arasında:

HasOneThrough: İki tablo arasında, bir aracı tablo üzerinden tekil (one-to-one) ilişki kurar. Örneğin, bir Kullanıcı ve onun şirketi arasında:

HasManyThrough: İki tablo arasında, bir aracı tablo üzerinden çoklu (one-to-many) ilişki kurar. Örneğin, bir Ülke ve o ülkeye ait şehirler arasında:

BelongsTo: Başka bir tabloya bağlı olan tekil (many-to-one) ilişkiyi temsil eder. Örneğin, bir Gönderi ve ona ait Kullanıcı arasında:

BelongsToMany: İki tablo arasında çoklu (many-to-many) ilişki kurar. Örneğin, bir Kullanıcı ve onun katıldığı Gruplar arasında:

MorphOne: Polimorfik tekil (one-to-one) ilişkiyi temsil eder. Örneğin, bir Yorum ve ona ait Tekil Resim arasında:

MorphMany: Bir modelin birden fazla modele bağlı olan birden fazla ilişkisi varsa kullanılır. Örneğin, bir görselin birden fazla modele (örneğin, kullanıcılar ve yazılar) birden fazla kez eklenebileceği varsayılabilir.

MorphTo: Bir modelin birden fazla modele bağlı olabileceği varsayılır, ancak hangi modele bağlı olduğu belirli değildir. Örneğin, bir yorumun birden fazla modele (örneğin, yazılara ve resimlere) ait olabileceği varsayılabilir.

MorphToMany: Bir modelin birden fazla modele birden fazla ilişkisi olabileceği varsayılır, ancak hangi modele bağlı olduğu belirli değildir. Örneğin, bir kategori birden fazla modele (örneğin, yazılara ve resimlere) ait olabileceği varsayılabilir.

MorphOneOfMany, bir modele birden fazla başka modele bağlı olan ilişkilerinden sadece birini seçmenizi sağlar. Örneğin, bir kullanıcının birden fazla resmi olabilir, ancak sadece bir tanesinin profil resmi olarak belirlenebileceği varsayılabilir. Bu durumda, MorphOneOfMany ilişkisi kullanılabilir.