EC-CUBE Ver2.11のおすすめ商品の登録機能を調べた時に
プライマリキーの採番をどうやっているのか、
気になったので調べた内容の備忘録。
まず、
html/admin/contens/recommend.php
にアクセスするのでこの内容を確認すると、
LC_Page_Admin_Contents_Recommendクラスを拡張している。
(末尾に_Exが付くクラスを拡張しているが、実体は_Exが無い方)
この中で、
insertRecommendProduct()
メソッドを呼び出し、メソッド内で以下の処理をしている。
SC_Query->nextVal(seqName)
nextVal()メソッドは、MDB2のメソッドになり、引数のseqNameにシーケンステーブルの指定している。
このシーケンステーブルには、最後に採番したIDが保存されている。
MDB2のnextVal()メソッドは、実行されるとIDを取得すると同時に
シーケンステーブルの更新も行っている。
[ 参考 ]
シーケンステーブルについて
MDB2のマニュアル
シーケンス(MDB2)