2018.11.14
団体用集金システムを作りたい!#11【EloquentORM#2-複合キー-】
ORMって楽しいっすね(笑)
ということで新しい知識のひけらかしということで、機能紹介ついでに、Eloquentの話の続きをしようと思います。今回の話題はタイトルの通り、複合主キーです。
いま、団体の新規作成のフェーズをやっておるのですが、この団体のデータの中には、グループ機能があり、作成者が最初
「管理者」となりすべての権限が付与される・・・・・・といったことが起きるのですが、この「権限」は「グループ」に紐付いておりまして、「誰が」「どのグループに」というその二者を紐付ける、つまり多対多を結びつけるテーブルが存在するのですが、こいつは別にIDみたいなキーが要らないんですね。組み合わせそのものが主キーにできるので・・・・・・。
まぁ具体的な例でいうと、「Aさん」はとあるオケの「管理者」であり「弦楽器」でもある・・・・・・みたいなやつだと、Aさんを基準にとってくると2つのレコードが引っ張ってこれるわけですね〜みたいなのを作ります。
ちなみに、これがどのような階層構造になってて、どちらが上位に来るかとかいうのは、また別のツリー構造があって・・・・・・って話は明後日の記事でやろっかなーって思ってます。
とりあえず、この複合主キーの扱い、Eloquent的にはどーしてあげたらいいのかっていうと・・・・・・
class HierarchyMember extends Model
{
public $incrementing=false;
protected $primaryKey = ['hierarchy_id', 'belong_id'];
...
}
こんな感じにしてあげたらよいのだそう。
ここでオラついてDBに追加しまくろうとしていたのですが、論理上の大きな変更を加えることになったので、一旦ここでおやすみです(笑)
次はちょっとややこしい話をしようとおもいまーす。