Arkadaşlar bir projede facebook Haber Kaynağındaki gibi, arkadaşlık , paylaşım ( video, durum-metin, resim...vb.. ) gibi işlemler olacak.
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.