Neden bununla uğraştığımı bilmiyorum, çok basit bir kavram gibi görünüyor. Bu yüzden benim mücadelem bana veri modellemenin başka bir bileşene ihtiyacı olduğunu düşünür ..."A" veya "Ait" ilişki veya başka bir şey var mı?
Laravel 5 kullanıyorum ve bazı model ilişkilerini tanımlamaya çalışıyorum. BelongsTo
, HasA
, vb. Kodu yazabilmeden önce, en azından kavramsal olarak oluşturduğum ilişki türünü anlamalıyım.
Kullanıcıların, kullanıcılara yönlendirme bağlantıları gönderebilecekleri bir uygulamam var; bir kullanıcı bağlantıyı tıklatır ve kaydolursa, kullanıcı kaydı, onlara gönderilen kodu not eder. Bu şekilde geri izleyebilir ve belirli bir kullanıcıyı kimin yönlendirdiğini görebilirim.
KULLANICI
+----+-------------+
| id | referral_id |
+----+-------------+
| 1 | 1 |
| 2 | null |
| 3 | 2 |
+----+-------------+
yönlendirmeler
+----+---------------+---------+
| id | referral_code | user_id |
+----+---------------+---------+
| 1 | 12345 | 2 |
| 2 | 54321 | 2 |
| 3 | 99999 | 2 |
+----+---------------+---------+
USERS.REFERRAL_ID
referanslar REFERRALS.ID
ve: Ama bir tavsiye
Tablolar kaydolmak için gerekli DEĞİLDİR REFERRALS.USER_ID
referanslar USERS.ID
Ama bunlar ne tür ilişkiler?
Bana açıkça görünen tek şey, REFERRALS.USER_ID
'unUSERS
'a ait olmasıdır.
Ancak, 'dan ne dersiniz? belongsTo
Yönlendirmeler, kayıt gerektirmediğinden ve kullanıcının herhangi bir şekilde "sahibi" gibi hissetmediğinden doğru gelmiyor. hasA
başvurusunun söylenmesi, kullanıcının kendisinin sahip olmadığı veya hatta yönlendirmeyi gerektirmediği şeklinde de doğru gelmiyor.
Sanırım kafam karıştığında, REFERRALS
isteğe bağlı bir varlıktır.
USERS.REFERRAL_ID
ve REFERRALS.ID
arasındaki ilişkiyi nasıl kavramsallaştırmalıyım?
Bu tür "dairesel referans" olması kötü mü? Bir pivot tablo oluşturmaktan daha iyi olur muyum?