如何制作一个通知表,在不创建太多"<source>_id"列的情况下与其他表建立雄辩的关系



>假设我有一个通知表,当从另一个表生成新日志时会生成该表。假设我有 3 个具有不同用途的不同日志,即:sms_logs、call_logs 和appointment_logs。

我想在不使用sms_logs_id、call_logs_id和appointment_logs_id的情况下与每个日志建立关系。相反,我只想构建两列,一列用于类型,另一列用于 ID。因此,例如生成一个 id 为 187 的 sms 日志,它还将生成一个notification_id为 187 和一种"短信"类型的通知日志。

我将如何创建它?谢谢!

好问题。

您只需notifications表中放置两个字段。foreign_idlog_type.

每当添加日志时,都必须相应地设置log_type。然后在Notification模型中添加此关系。

public function foreignModel()
{
switch($this->log_type){
case "call_log":
return $this->belongsTo('AppCall', 'foreign_id');
break;
}
}

我没有尝试过,但希望它能正常工作。

如果你正在寻找比这更动态和更不强大的东西,那么我认为它不存在。

最新更新