ECCUBE 2.17系 シーケンステーブル

テーブルのデータを直接さわる中で、
シーケンステーブル(主キーの管理を担っている)は、ホント邪魔なわけで。

で、以前、
シーケンステーブルをまとめる方法
的な記事を書いたが、
正常に動くはずだけど、どこかに、爆弾をかかえてそうで、
本環境では、使えなかったのだけど、

上記の通り、

シーケンステーブルが、邪魔

なわけで、

 

今回、新たな方法を見つけた。

***

接頭語をつけて、テーブルをまとめる。

まず、phpMyAdminで、テーブルに接頭語をつけます。

phpmyadmin 接頭語をテーブルに付ける

標準装備。ありがたい!

で、

ECCUBE シーケンステーブルに接頭語を付ける

こんな感じに、まとまる。
xとか、zとか、つけると、後方にまとまって良い感じ。
※_(アンダーバー)も可。

 

次に、コードの修正。

/data/class/SC_Query.php

    /**
     * 次のシーケンス値を取得する.
     *
     * @param string $seq_name 取得するシーケンス名
     * @param integer 次のシーケンス値
     */
    public function nextVal($seq_name)
    {
        return $this->conn->nextID('接頭語'. $seq_name);
    }

    /**
     * 現在のシーケンス値を取得する.
     *
     * @param  string  $seq_name 取得するシーケンス名
     * @return integer 現在のシーケンス値
     */
    public function currVal($seq_name)
    {
        return $this->conn->currID('接頭語'. $seq_name);
    }

※’接頭語’.の部分を、シーケンステーブルの先頭に付けた文字に置き換えてね。

で、上記は、
class_extendsdのSC_Query_ex.phpに、コピーすれば、動くはず。

 

この方法だと、大きな変革の必要はなく、
コードの修正も、最小限で済むし、

phpMyAdminで、テーブルを探すのも、すっごく楽になる!!

 

このシーケンステーブル、そろそろ標準で、
なんとかしてくれないだろうかね?

 

やっぱ、有志に参加するしかないかね~~?

 

まあ、現状で解決しているので、ね?!

ECCUBE 2.17系 シーケンステーブル
Tagged on: