テーブル名・カラム名規約 | Database

テーブル名、カラム名に関する規約は下記の通りです。
  • テーブル名・カラム名は半角英数字
  • テーブル名・カラム名は数字から始まらない
  • プライマリキーは id
  • 外部キーとなるカラムは テーブル名_id(例: user_id)

推奨通りの定義を行っていると、いくつかの場面で楽をできます。例えばマイグレーションで外部キーを定義する時があります。
$create->fkey("user_id");
そうでない場合、例えばfoo_idがuserテーブルのbarカラムを参照しているとなると、下記のように書かなくてはなりません。
$create->fkey("foo_id")->table("user")->column("bar");
また、モデル(ActiveRecordオブジェクト)をコンディションとして使用できます。
$aUser; // DBから取得済みのユーザ

$arArticle = new Article();
$articles = $arArticle->select($aUser);  // あるユーザが投稿した記事を取得
規約通りでなくても、下記のように普通にセットすれば大丈夫です。
(下記はarticleテーブルのfooカラムがuserテーブルのbarカラムとイコールのときの例)
$articles = $arArticle->select("foo", $aUser->bar);  // あるユーザが投稿した記事を取得
また、テーブルに対応するモデルのクラス名は、テーブル名から決定されます。モデル名はテーブル名の先頭文字を大文字にし、アンダーバーが含まれる場合はそれを削除し、それの直後の文字を大文字にしたものとなります。
  • user => User
  • foo_bar => FooBar
  • foo_bar_baz => FooBarBaz

この規約から外れる場合は、モデルクラスで $tableName を設定してください。
app/models/User.php

class User extends Sabel_Db_Model
{
  protected $tableName = "t_user";
}

ということで、規約に則っていなくてもほんの少しコーディングが多くなる(省略できなくなる)だけなので、
それほど問題はありません。