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すごい!

