亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Laravel Eloquent ORM 中存儲元組數組

在 Laravel Eloquent ORM 中存儲元組數組

PHP
冉冉說 2023-08-11 11:03:03
我對 Laravel 相當陌生,并且對他們雄辯的模型非常感興趣。我正在開展一個小型實踐項目,需要有關如何最好地存儲一些數據的建議。我想在表中存儲小狗的體重和測量體重的日期(最好以元組或 json 格式)。我想稍后使用這些數據來使用 Vue 創建圖表,以便創建描述隨時間增長的圖表和圖形。最好的方法是什么?我想象在模型遷移中會有某種$table->integer('weight'), $table->timestamp('weight-measurement-date')或可能的情況$table->json('weight-data'),但我仍然是新手,不熟悉最佳實踐。當然,數據庫表需要存儲數據而不會覆蓋或刪除以前的條目。任何幫助將非常感激。
查看完整描述

1 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

我將使用一個簡單的one-to-many關系,因此您將有一個puppies表和一個measurements表,其中measurements表保存發生的所有不同測量。

https://img3.sycdn.imooc.com/64d5a50a00014d9d04760202.jpg

這將允許您為特定的小狗添加任意數量的測量值。


我選擇measured_at代替weighed_at小狗稱重的日期,因為也許您會在測量表中添加一個新列(例如身高),所以我認為使用代替是有意義的,因為您可能不measured_at這樣weighed_at做想要多個測量日期。


要開始使用,您可以使用以下命令:


php artisan make:migration create_puppies_table


php artisan make:migration create_measurements_table

然后將以下內容添加到您的遷移中。


幼犬遷徙:


Schema::create('puppies', function (Blueprint $table) {

? ? $table->id();

? ? $table->timestamps();

});

測量遷移:


Schema::create('measurements', function (Blueprint $table) {

? ? $table->id();

? ? $table->foreignId('puppy_id')->constrained();

? ? $table->timestamp('measured_at');

? ? $table->timestamps();

});

然后,您將需要兩個模型Puppy,并且Measurement可以在其中定義關系方法:


小狗模型:


public function measurements()

{

? ? return $this->hasMany('App\Measurement');

}

測量模型:


public function puppy()

{

? ? return $this->belongsTo('App\Puppy');

}


附:

您唯一需要考慮的是如何存儲權重,可能是 a ,decimal也可能是 an?integer,如果您將其存儲為整數,則每次檢索/存儲在數據庫中時都必須將其轉換。


查看完整回答
反對 回復 2023-08-11
  • 1 回答
  • 0 關注
  • 114 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號