私は現在 Eloquent ORM を試しており、アプリケーション内でオブジェクトを動的にモデル化する可能性を検討しています。
形状モデルがあるとしましょう。
形状は、正方形、円、三角形、長方形、五角形、六角形などです。
すべての形状には類似点がありますが、一部の形状には異なる特性があります。
私がやりたいことは、mysql データベース テーブルをより一般的なものにすることです。たとえば、shapes というテーブルを作成します。
形状テーブル:
id:integer
name:string
width:integer
height:integer
radius:integer
sides:integer
形状モデル:
$rulesCircle = ['sides'=>'required', 'radius'=>'required']
$rulesSquare = ['height'=>'required', 'sides' => 'required']
$rulesRectangle = ['height'=>'required', 'width' => 'required', sides' => 'required']
ここで、ユーザーに形状の寸法を選択して指定するよう求めるフォームがあると仮定しましょう。
ユーザーが円を選択すると仮定すると、正しい検証ルールを使用する必要があります。
これはばかげた例のように聞こえるかもしれませんが、実験的な理由でこれを調べているだけです。
これを行う正しい方法は次のとおりです。
- 異なる検証ルール (if / else ステートメント) を持つ形状モデルを使用して、正しい検証ルールを選択します
- すべてに共通の機能 (名前と側面など) を含むすべての一般的な形状と、形状モデルを拡張するがすべて同じ形状の mysql テーブルを参照する正方形/円/長方形モデルに形状モデルを使用します。
- 他の
上記は可能ですか?上記に取り組むためのより良い方法はありますか?これを行うためのベストプラクティスの方法はありますか? 上記の種類の要件を表す特定の用語はありますか?