###### tags: `高松コーディングブートキャンプ-オリジナルアプリ` # テーブル設計 ※以下3つの機能に大分。 * SHOP(顧客側) * SHOP(編集者側) * BLOG ## SHOP(顧客側)テーブル ### customers テーブル | Column | Type | options | | ------------------ | --------- | -------------------------- | | email | string | null:false, default:"" | | encrypted_password | string | null:false, default:"" | | last_name | string | null:false | | first_name | string | null:false | | last_name_kana | string | null:false | | first_name_kana | string | null:false | | phone_numder | string | null:false | | address_numder | string | null:false | | city | string | null:false | | address | string | null:false | | building | string | null:false | | birth_day | date | null:false | | mailmagazine | boolean | null:false, default:"true" | | last_login | timestamp | null:false | #### Association * has_many:orders * has_many:reviews #### 備考 * 性別はActiveHashで管理 男性/女性/指定無し * last_name:苗字 * first_name:名前 <br /> --- ## SHOP(編集者側)テーブル ### editors テーブル | Column | Type | options | | ------------------ | --------- | ---------------------- | | email | string | null:false, default:"" | | encrypted_password | string | null:false, default:"" | | name | string | null:false | | password | string | null:false | | last_login | timestamp | null:false | #### Association * belongs_to : * has_many : <br /> --- ## SHOP(商品関連)テーブル ### items テーブル | Column | Type | options | | ------------- | ------- | -------------------------- | | price_no_tax | string | null:false | | price_in_tax | string | null:false | | name | string | null:false | | tax_id | integer | null:false | | URL_path | string | null:false | | category    | references | null:false,foreign_key:true | | content | string | | | visible | boolean | null:false, default:"true" | #### Association * belongs_to : * has_many : reviews * has_one:categories * has_one_attached:image ※画像は取り急ぎ1枚だけ登録 #### 備考 * 消費税はActiveHashで管理 <br /> ### categories テーブル | Column | Type | options | | --------- | ------- | -------------------------- | | name | string | null:false | | URL_path | string | null:false | | item | references | null:false,foreign_key:true | #### Association * belongs_to :item <br /> ### orders テーブル | Column | Type | options | | -------- | ---------- | --------------------------- | | customer | references | null:false,foreign_key:true | | item | references | null:false,foreign_key:true | | coupon | references | null:false,foreign_key:true | #### Association * belongs_to : * has_many : * has_one_attached : coupon ※クーポンの実装は先延ばし予定 #### 備考 * 送料はActiveHashで管理 3000円未満:500円 3000円以上:0円 ※↑仮の設定 <br /> ### reviews テーブル | Column | Type | options | | ------------ | -------- | ----------------------------- | | nickname | text | null:false | | content | text | null:false | | customers_id | interger | null:false, foreign_key:true | | star_rating | string | null:false | | visible | boolean | null:false, default:"false" | #### Association * belongs_to : customer * has_many : #### 備考 * star_rating:5段階評価の星(★)の数 <br /> ### coupons テーブル ※クーポンの実装は先延ばし予定 | Column | Type | options | | ----------- | --------- | ---------- | | content | text | null:false | | start_at | timestamp | null:false | | end_at | timestamp | null:false | | off_rate | string | | | off_price | string | | | thumbnail | string | null:false | #### Association * belongs_to : * has_many : * has_one_attached : order <br /> --- ## BLOGテーブル ※MicroCMS(Headless CMS)で管理。 ---