シェアする

  • このエントリーをはてなブックマークに追加

【データベース】テーブル名の命名規則で悩んでいます

今、自社開発のショッピングカート*[1] をリニュアルするプロジェクトに着手しております。

もともと超しょぼい自前のフレームワーク *[2] で作っていたのですが、今回はもちろんCakePHPベースにしたいと思います。
旧ソースがあまりにクソ、もとい粗が多く、柔軟性も無いので、フルスクラッチで書き直し、データベース*[3] もCakePHPの規約に合わせて一新してやろうと思います。

で、悩んでいるのが「データベーステーブルの名前」。
みなさんはどんな感じで名前をつけてますか?

今回想定されるテーブル数はおよそ30。
参考までにどんなテーブルを作るかというと、

マスタテーブル
余り変化が無く、データの編集がありえるテーブル。PrimaryKeyがデータテーブルにforeignKeyとして格納されることが多いテーブルで、顧客テーブル、商品テーブル、商品オプションテーブルなどを*[4] マスタと考えています。
データテーブル
日常的に追加されていくテーブル。追加された後に編集されることはほとんど無い。売上テーブル、配送先テーブル、デザインテーブルなどをデータテーブルと考えています。
リストテーブル
本来はマスタテーブルなんだろうな?と思いつつ、マスタ以上に変動が無いテーブルをマスタと分けてリストテーブルとしています。都道府県テーブル、のしテーブル、配送時間テーブル、支払方法テーブルなど、一回設定するとまず変更とか追加、削除は無いようなテーブルです。

なぜこのように分けたいかというと、テーブルが増えると探すのに苦労するから^^;
たかだか30個くらいでしょ?と思われるかもしれませんが、最近目が悪くなってたったこれだけの数でも探すのに苦労するのです。
Modelファイルも然り、phpMyAdminのテーブル一覧然り、接頭語無しの一覧では目がチカチカしてしまう30才一歩手前の僕。

しかし、テーブル名の前に三種類のテーブルをあらわす接頭語が付いていると”俄然”探しやすくなるという。まあ、他愛もないお話で申し訳ないのですが、みなさんはどうしてるのかな?と思った次第です。

僕の場合、旧サイトでは
マスタ:m_テーブル名
データ:t_テーブル名
リスト:l_テーブル名
のようにしていたのですが、どんなものでしょう?かっこ悪い?
新しいサイトでもとりあえずは上の命名規則でいこうかと思いますが、ぜひともプロの方はどうしているのか、知りたいところでございます。

…ちなみに、
EC-CUBEはテーブルとマスタを接頭語でdtb,mtbで分けてますよね。
wordpressはテーブルの役割を示す接頭語は無いようです。
他にもtblやmstのような接頭語をどこかで見かけたことがあるような。。
みなさんのブログなどを見るとCakePHPではあまりそういう名付けをしている人がいないようなので、ちょっと気になってPOSTしてみました。

みなさんは、接頭語を「つける派?」「つけない派?」
もし、自分はこうしてるよ?ってのがありましたら、ぜひともご教示いただけるとありがたいです 🙂

  1. 汎用性は無く自社独自の仕様。デコチョコの超簡易版みたいな機能をもってます []
  2. なんかの本に書いてあったソースまるパクリの^^; []
  3. 中身は旧から移植するけど []
  4. 一般的な用法はともかく僕はこれを []

シェアする

  • このエントリーをはてなブックマークに追加

フォローする