2016-07-30 31 views
0

我有一張表,用於存儲用戶感興趣的主題以及用戶標識和主題標識。該表將看起來像如何更新數據庫中的一行而不用laravel覆蓋現有數據5.2

Topic name  topic id  User-id 
    Sports   1    1 
    Education  2    3 
    Family   3    1 

什麼我想要做的是,當一個新的用戶,比如用戶ID「3」增加了他作爲話題的體育興趣,那麼第一行應該是這樣的

Topic name  topic id  User-id 
    Sports   1    1,3 

當我嘗試更新它覆蓋像

Topic name  topic id  User-id 
    Sports   1    3 

什麼是做這種正確的方法整列?

+0

正確的做法是使用多對多關係。 –

+0

否否否否否否否否AAARRRggghhhhh。從不在關係數據庫的單個列中存儲任何逗號分隔列表。 **有瘋狂** – RiggsFolly

回答

1

正確的方法是使用Many-To-Many關係:

表:

users (id, ....); 
topics (id, ....); 
topic_user (topic_id, user_id); 

PHP:

class User extends Model { 

    public function topics() { 
     return $this->belongsToMany('App\Topic'); 
    } 
} 

和:

class Topic extends Model { 

    public function users() { 
     return $this->belongsToMany('App\User'); 
    } 
} 

欲瞭解更多詳情請參閱https://laravel.com/docs/5.2/eloquent-relationships

我希望這會有所幫助。