« MySQLに繋ぐ設定を入れる(p) | メイン(m) | モデルクラスとテーブルを自動生成する »(n)

データベースのテーブル構成を考えてしまう

symfonyにはYAMLファイルからデータベースにテーブルを作ってO/Rクラスを自動生成してくれる機能があります。
なので、まず最初にデータベースのテーブル構成を考えてしまいます。
もちろん、後からの変更も可能。

ということで、schema.ymlにデータベースのテーブル定義を書いて行きます。

propel:
  user:
    id:
    user_name: varchar(10)
    password: varchar(10)
    email: varchar(100)
    last_login: timestamp
    created_at:
    updated_at:
  color:
    id:
    color_name: varchar(100)
    created_at:
    updated_at:
  category:
    id:
    category_name: varchar(100)
    parent_id: integer
    created_at:
    updated_at:
  category_table:
    id:
    product_id:
    category_id:
  product:
    id:
    product_name: varchar(100)
    width: smallint
    height: smallint
    depth: smallint
    price: smallint
    description: longvarchar
    spec: longvarchar
    image1: varchar(50)
    image2: varchar(50)
    image3: varchar(50)
    url: varchar(200)
    color_id:
    created_at:
    created_by: { type: integer, foreignTable: user, foreignReference: id }
    updated_at:
    updated_by: { type: integer, foreignTable: user, foreignReference: id }

idとかcreated_atとかupdated_atとかのカラム名にしておくと、勝手にprimary keyとかtimestampとかにしてくれるそうです。
さらに、テーブル名_idってカラム名にすると、勝手にforeign keyにしてくれるそうです。
参考:symfonyで開発日記 : schema.ymlがどこまで楽させてくれるか

propelすごい!



« MySQLに繋ぐ設定を入れる | メイン | モデルクラスとテーブルを自動生成する »

Trackbacks

このエントリーのトラックバックURL:

Post a commnet

AMN sponsor rolls


著書

実践Web2.0 BOOK 人気ブロガー直伝! 一歩先行くWeb2.0的ワーキングスタイル
ムーバブル・タイププラグインディレクトリ―PROFESSIONAL NETWORK