46日目:データ構造を決める1

だいたい symfonyの使いかたも入口ぐらいは分かってきたので、あとは実践で勉強しながら作ります。
まずはモデル(データ構造)を決めなければ、何もできません。
前になんとなく考えてあったので、それを実際に schema.ymlに落としていきます。とりあえず現時点での schema.ymlはこんな感じ。

propel:
  category:
    id:
    #カテゴリ名
    name: varchar(100)
    #カテゴリの説明文
    caption: longvarchar
    #カテゴリのアイコン
    icon_url: varchar(255)
    parent_category_id: { type: integer, foreignTable: category, foreignReference: id}
    created_at:
    updated_at:

  channel:
    id:
    category_id:
    #チャンネル名
    name: varchar(100)
    caption: longvarchar
    icon_url: varchar(255)
    owner: integer
#    tag: varchar(255)
#削除フラグ
    active: bool

#ちゃんねるを購読中のユーザーID
# viewer:
#総番組数
#episode
#複数人で編集用
#    editor:
#以下 iTunes用のタグ
    copyright:
    author:
    category:
    image:
#    duration:
    explicit:
    keywords:
    owner:
    subtitle:
    summary:
    created_at:
    updated_at:

#  channel_editor:
#    id:


#1本の番組をエピソードと呼ぶ事にする
  episode:
    id:
    channel_id:
    episode_owner_id: { type: integer, foreignTable: sf_guard_user, foreignReference: id}
    #エピソードのタイトル
    name: varchar(100)
    #エピソードの説明文
    caption: longvarchar
    #動画の置いてあるアドレス
    movie_url: varchar(255)
    #thumbnailは本当は5枚ぐらい持ちたい
    thumbnail_url: varchar(255)
    #番組の長さ。100分の1秒単位
    duration: bigint
    #アクセス数
    view_count: integer
    #リファラ(はてダみたいなの)
    referer: longvarchar
    #足跡
    footprint: longvarchar
#tag
#usertag
#rating
#bookmark:お気に入りに登録された数
    #コメントはつけられた時点で、別のテーブルを参照    
    comment_id:
    #公開予定日
    pubdate_at:
    created_at:
    updated_at:


  sf_guard_user_profile:
    _attributes: { phpName: sfGuardUserProfile }
    id:
    user_id:     { type: integer, foreignTable: sf_guard_user, foreignReference: id, required: true, onDelete: cascade }
    nickname: varchar(40)
    pc_mail: varchar(100)
    mobile_mail: varchar(100)
    point: intger

    icon_url: varchar(255)
    first_name:  varchar(20)
    last_name:   varchar(20)
    sex: integer:
    country: integer
    postal_code: 
    address1: varchar(100)
    address2: varchar(100)
    tel: varchar(20)
    mobile_phone: varchar(20)
    birthday:    date
    introduction: longvarchar
    web_url: varchar(255)
    subscribe_channel_id:
#配信中のチャンネルID.配信って英語でなんていうの?
    onair_channel_id:
    login_count: integer
    comment_count: integer
    rating_count: integer
    footprint:
#マイミク
    friend:
    created_at:
    updated_at:

分からない事はいっぱいあるのですが、とりあえず困ったのが、cでいうところの構造体みたいなデータを schemaで表現する方法ってないのでしょうか? mySqlの本とか読めば書いてあるのかな?

あと、tagのデータ構造をどうしたらよいのかとか、足跡一覧はどうやって記録すればよいのかとか、まだまだ分からない事がいっぱいあります。
とりあえず、難しくないところから作っていきます。まずはカテゴリ表示をきちんと作りなおしてみようと思います。