Burada tam olarak mantığı oturtamadım,
Ör; birisi paylaşımda bulundu ve arkadaş listesindeki kişiler bunu görebilmeli.
Veritabanı yapısı sizce nasıl olmalı acaba ?
Algoritmasını nasıl oluşturursam sisteme en az yük biner sizce.
Biraz düşününce şöyle bir yol geldi aklıma.
Ör;
veritabanım şöyle olsa.
+ Kullanici
- id
- adsoyad
- vs..
+ Paylasim
- id
- kullanici_id
- tur
- baslik
- metin
- videolink
- vs...
+ Arkadaslik_iliski
- id
- kim ( kullanici_id'leri )
- kiminle ( kullanici_id'leri )
- vs..
Bu veritabanından yola çıkarak şöyle yapsam,
$aktifKullanici = ; //giriş yapmış kullanıcı id SELECT paylasim.baslik FROM arkadaslik_iliski INNER JOIN paylasim ON paylasim.kullanici_id = arkadaslik_iliski.kiminle INNER JOIN kullanici ON kullanici.id = paylasim.kullanici_id WHERE arkadaslik_iliski.kim = $aktifKullanici
laravel için
$paylasimlar= DB::table('arkadaslik_iliski')
->join('paylasim' , 'paylasim.kullanici_id', '=' ,'arkadaslik_iliski.kiminle' )
->join('kullanici' , 'kullanici.id', '=' ,'paylasim.kullanici_id' )
->where('arkadaslik_iliski.kim','=', Auth::user()->id )
->get();iş görüyor gibi ama , kullanıcı sayısı ve paylaşımlar arttıkça durum nasıl olur bilmiyorum
sorgularım mantıken doğru mu acaba, ya da başka önerisi olan var mı
not: php ( Laravel Framework ) + mysql kullanmaktayım.