最終課題
自分用メモです
WHAT
DB設計をREADMEに書く前にmarkdownで書く
WHY
チームメンバーと共有する為
DB設計
usersテーブル
Column
Type
Options
nickname
string¥null: false
family_name
string
null: false
fairst_name
string
null: false
family_name_kana
string
null: false
first_name
string
null: false
birth_year
string
null: false
birth_month
string
null: false
birth_day
string
null: false
password
string
null: false
email
string
null: false, unique: true
status
integer
null: false
deleted_at
datetime
null: false
Association
has_many :items
has_many :likes dependent: :destroy
has_many :comments dependent: :destroy
has many :messages dependent: :destroy
has many :points dependent: :destroy
has_many :social_providers dependent: :destroy
has_one :deliver_adresses dependent: :destroy
has_many :wallets dependent: :destroy
has_many :reviews dependent: :destroy
has_many :orders dependent: :destroy
social_providersテーブル
Column
Type
Options
user_id
references
null: false, FK: true
provider
string
null :false
Association
deliver_adressesテーブル
Column
Type
Options
user_id
references
null: false, FK: true
family_name
string
null: false
first_name
string
null: false
family_name_kana
string
null: false
first_name_kana
string
null: false
zip_code
integer
null: false
prefecture
string
null: false
city
string
null: false
adress1
string
null: false
adress2
string
telephone
string
unique: true
Association
walletsテーブル
Column
Type
Options
user_id
references
null: false, FK: true
money
integer
null: false
Association
pointsテーブル
Column
Type
Options
user_id
rederences
null: false, FK: true
score
imteger
null: false
Association
messagesテーブル
Column
Type
Options
user_id
references
null: false, FK: ture
item_id
references
null: false, FK: true
text
text
null: false
Association
belongs_to :user
belongs_to :item
commentsテーブル
Column
Type
Options
user_id
references
null: false, FK: true
item_id
references
null: false, FK: true
text
text
null: false
Association
belongs_to :user
belongs_to :item
likesテーブル
Column
Type
Options
user_id
references
null:false, FK: true
item_id
references
null:false, FK: true
Association
belongs_to :user
belongs_to :item
reviewsテーブル
Column
Type
Options
user_id
references
null: false, FK: true
item_id
references
null: false, FK:true
rate
integer
null: false
text
text
Association
belongs_to :item
belongs_to :user
ordersテーブル
Column
Type
Options
buyer_user_id
references
null: false, FK: true
item_id
references
null: false, FK: true
Association
belongs_to :user
belongs_to :item
itemsテーブル
Column
Type
Options
category_id
references
null: false, FK: true
shipping_id
references
null: false. FK: true
brand_id
references
null: false. FK: true
seller_user_id
references
null: false, FK: true
name
string
null: false
text
text
null: false
condition
integer
null: false
price
integer
null: false
trading_status
integer
null: false
completed_at
datetime
Association
belongs_to :user
belongs_to :category
belongs_to :brand
has_many :likes dependent: :destroy
has_many :comments dependent: :destroy
has_many :messages dependent: :destroy
has_one :shipping
has_many :reviews
has_many :item_images dependent: :destroy
has_one :order
item_imagesテーブル
Column
Type
Options
item_id
references
null: false, FK: true
image_url
string
null: false
Association
categoriesテーブル(経路列挙モデル)
Column
type
Option
path
text
null: false
name
string
null: false
ancestry
string
Association
has_many :brands
has_many :items
has_one :category_size
has_one :size, through: :category_size
has_one :category_brand_group
has_one :brand_group, through: :category_brand_group
has_ancestry
sizesモデル
Column
Type
Options
path
text
null: false
kind
string
null: false
ancestry
string
Association
has_many :items
has_many :category_sizes
has_many :categories, through: :category_sizes
has_ancestry
category_sizesテーブル
Column
Type
Options
category_id
references
FK: ture
size_id
references
FK: true
Association
belongs_to :category
belongs_to :size
brandsテーブル
Column
Type
Options
category_id
references
null: false, FK: true
brand_id
references
null: false, FK: true
name
string
null: false
Association
has_many :item
belongs_to :brand_group
belongs_to :category
brand-groupsテーブル
Column
Type
Options
name
string
null: false
Association
- has_many :brands
shippingsテーブル
Column
Type
Options
fee_burden
boolean
null: false
service
integer
null: false
area
integer
null: false
handling_time
integer
null: false
Association
cards(クレジットカード)
pay.jpで実装するので不要
参考
https://tech.mercari.com/entry/2017/11/29/161124
→データ容量が増え続けるから商品テーブルのdescriptionをテーブルから切り離す。将来の拡張性を考えDB設計を考えると別テーブルを作成した方がエンジニアチックでカッコいい
https://teratail.com/questions/171228
https://komiyak.hatenablog.jp/entry/20141103/1415016929
→googleなど外部の認証機能を使う「OAuth 認証」
Author And Source
この問題について(【DB】フリマアプリのDB設計を考える), 我々は、より多くの情報をここで見つけました
https://qiita.com/suzy1031/items/5e2babbf4492e55a548b
著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .