婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Laravel等框架模型關聯的可用性淺析

Laravel等框架模型關聯的可用性淺析

熱門標簽:岳陽外呼型呼叫中心系統在哪里 山西回撥外呼系統 昭通辦理400電話 青島語音外呼系統招商 百應電話機器人服務 騰訊外呼管理系統 山西探意電話機器人 揚州地圖標注app 河南電銷卡外呼系統哪家強

早期開發中,模型關聯帶來非常大的便利性。同時也提升了數據庫查詢效率(避免了重復查詢,相關解釋如 laravel 的 n+1 查詢問題)。

比如說,獲取用戶信息的接口,接口中除了要返回 user 表的數據外,還需要返回類似 user_option 或者 user_info 等表的數據。這個時候用 laravel 的模型關聯的形式如下:

class UserModel extends Model {
  protected $table = 'user';
  public $timestamps = false;
  
  public function userOption()
  {
    return $this->hasOne(UserOptionModel::class , 'user_id' , 'id');
  }
  
  public function findById(int $user_id)
  {
    $res = self::with(['user_option'])
      ->find($user_id);
    return $res;
  }
}

class UserOptionModel extends Model {
  protected $table = 'user_option';
  public $timestamps = false;
}

模型關聯從上述代碼看,用起來相當便利!

但是當后期,你的系統用戶量上去后,不可避免的要用上類似 redis 這樣的緩存。假設用戶表需要緩存的話,那么結果可能就是另外一種景象了。

class UserCache {
  // 獲取用戶信息
  public static function findById(int $user_id)
  {
    // 獲取緩存數據
    $user = Redis::string('user_' . $user_id);
    if (!empty($user)) {
      return $user;
    }
    $res = UserModel::findById($user_id);
    Redis::string('user_' . $user_id , $res);
    return $res;
  }
}

上述代碼緩存了用戶的信息到 redis,那如果針對某個用戶他的 user 表主體信息沒有發生改變,但是 user_option 表發生了改變,那么正常也應該刪除該用戶的 redis 緩存。

這種情況下,代碼的復雜度就直線上升了!

所以,個人建議在代碼開發過程中,不要使用模型關聯!

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • Laravel 關聯模型-關聯新增和關聯更新的方法
  • Laravel關聯模型中過濾結果為空的結果集(has和with區別)
  • laravel學習教程之關聯模型
  • Laravel5.1 框架模型多態關聯用法實例分析
  • Laravel Eloquent分表方法并使用模型關聯的實現
  • Laravel 模型關聯基礎教程詳解
  • Laravel5.1 框架模型遠層一對多關系實例分析
  • Laravel5.1 框架模型一對一關系實現與使用方法實例分析
  • Laravel5.1 框架模型查詢作用域定義與用法實例分析
  • Laravel5.1 框架模型創建與使用方法實例分析
  • Laravel5.1 框架關聯模型之后操作實例分析

標簽:銅川 南陽 鎮江 湛江 婁底 宜賓 寶雞 黃南

巨人網絡通訊聲明:本文標題《Laravel等框架模型關聯的可用性淺析》,本文關鍵詞  Laravel,等,框架,模型,關聯,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Laravel等框架模型關聯的可用性淺析》相關的同類信息!
  • 本頁收集關于Laravel等框架模型關聯的可用性淺析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 台前县| 丹巴县| 宁晋县| 新昌县| 通道| 开原市| 通海县| 邢台市| 台南县| 仪征市| 崇明县| 江都市| 新化县| 中山市| 荣成市| 隆化县| 炉霍县| 阳原县| 扎兰屯市| 房产| 五华县| 义马市| 讷河市| 安多县| 襄樊市| 舞阳县| 罗定市| 保定市| 剑川县| 庆安县| 噶尔县| 秦皇岛市| 久治县| 平邑县| 高雄市| 双辽市| 铁岭市| 洪泽县| 湟中县| 宜君县| 武穴市|