php - 如何制作一个通知表,与其他表建立雄辩的关系而不会产生太多“
问题描述
假设我有一个通知表,该表在生成另一个表的新日志时生成。假设我有 3 个不同用途的日志,即:sms_logs、call_logs 和约会日志。
我想在不使用 sms_logs_id、call_logs_id 和 Appointment_logs_id 的情况下与每个日志建立关系。相反,我只想构建两列,一列用于类型,另一列用于 ID。因此,例如生成一个 id 为 187 的 sms 日志,它还将生成一个 notification_id 为 187 且类型为“sms”的通知日志。
我将如何创建它?谢谢!
解决方案
好问题。
您只需在notifications
表中放置两个字段。foreign_id
和log_type
。
每当您添加日志时,您都必须进行log_type
相应的设置。Notification
然后在您的模型中添加此关系。
public function foreignModel()
{
switch($this->log_type){
case "call_log":
return $this->belongsTo('App\Call', 'foreign_id');
break;
}
}
我没试过,但希望它能正常工作。
如果您正在寻找比这更动态且不那么健壮的东西,那么我认为它不存在。
推荐阅读
- angular - 加载组件时如何在角度引导日期选择器中将今天设置为默认日期?
- .net - 在 Azure Devops 中以编程方式获取当前 sprint
- python - 在 Python 中使用 cv2 获取当前视频播放位置
- python - 使用 multibuild 减少 Docker 镜像大小
- next.js - 按钮没有统一的填充
- java - 杰克逊序列化不包括字段
- laravel - 使用干预/图像调整图像大小
- android - ionic cordova build android 抛出错误:项目目标不存在
- blazor - 如何在 Blazor 中使用捆绑的 js?
- redux-toolkit - 如何使用 redux-toolkit 动态更改基本 URL?