[RUBY] [Rails] Conception de bases de données pour le site EC

introduction

J'ai créé un site EC en utilisant Ruby on Rails (-v 5.2). Cette fois, j'écrirai que j'ai fait quelque chose comme ça sur la conception de la base de données à ce moment-là.

Site référencé

Une lecture incontournable pour les jeunes programmeurs! 5 étapes pour dessiner un diagramme ER qui peut être compris en 5 minutes

Je faisais référence à "Vérification du scénario du système" sur le site ci-dessus.

Comme suit.

Description du cas d'utilisation

--Utiliser le nom du cas: le client commande un article

Identifier les entités

Master ou transaction

--Système Master

J'y pensais au début, mais depuis que j'ai commencé à le créer, je l'ai changé comme il convenait. Le mode de paiement est également la carte de crédit (en utilisant PAY.JP) uniquement.

Conception DB du sujet principal

Je m'inquiétais de ce qu'il fallait faire avec la table de panier pour la fonction de panier, qui est une fonction essentielle sur le site EC, et la table de détails de commande, mais je l'ai abandonnée comme table intermédiaire avec le sentiment suivant.

スクリーンショット 2020-06-01 23.28.25.png

Quant à la table du chariot, il n'y a pas de colonnes autres que PK car elle ne sert que de chariot. Je ne l'ai pas mentionné dans le cas d'utilisation, mais je n'ai pas user_id (FK) car je souhaite utiliser la fonction panier même si je ne suis pas connecté.

users table

Column Type Options
nickname string null: false
email string default: "", null: false
password string null: false
encrypted_password string default: "", null: false
reset_password_token string
reset_password_token string
admin boolean default: false

Association

orders table

Column Type Options
user references foreign_key: true
card references foreign_key: true
product references foreign_key: true
quantity integer null: false
status integer default: 0, null: false
postage integer default: 0, null: false
price integer null: false

Association

cards table

Column Type Options
customer_id string null: false
card_id string null: false
user_id string null: false

Association

addresses table

Column Type Options
destination_family_name string null: false
destination_first_name string null: false
destination_family_name_kana string null: false
destination_family_name_kana string null: false
postcode integer null: false
prefecture_code string null: false
address_city string null: false
address_street string null: false
address_building string
phone_number bigint
user references foreign_key: true, null: false

Association

brands table

Column Type Options
name string

Association has_many :products, dependent: :destroy

sexes table

Column Type Options
name string

Association has_many :products, dependent: :destroy

seasons table

Column Type Options
name string

Association has_many :products, dependent: :destroy

smell_impressions table

Column Type Options
name string

Association has_many :products, dependent: :destroy

smell_types table

Column Type Options
name string

Association has_many :products, dependent: :destroy

user_scenes table

Column Type Options
name string

Association has_many :products, dependent: :destroy

products table

Column Type Options
name string null: false
namelap string null: false
description text
image text
price integer
stock_quantity
brand references foreign_key: true
sex references foreign_key: true
season references foreign_key: true
smell_type references foreign_key: true
main_spice references foreign_key: true
smell_impression references foreign_key: true
use_scene references foreign_key: true

Association

carts table

Column Type Options

Association has_many :line_items, dependent: :destroy

comments table

Column Type Options
user references foreign_key: true
product references foreign_key: true
text text null: false
rate float

Association belongs_to :product belongs_to :user

order_details table

Column Type Options
product references foreign_key: true
order references foreign_key: true
quantity integer null: false

Association

line_items table

Column Type Options
product references foreign_key: true
cart references foreign_key: true
quantity integer default: 0, null: false

Association

Recommended Posts

[Rails] Conception de bases de données pour le site EC
[Rails] Fonction de panier de site EC
[EC2 / Vue / Rails] Procédure de déploiement EC2 pour Vue + Rails
rails db: 〇〇 Résumé
Recette pour déployer des applications Rails sur AWS EC2
Créer un site EC avec Rails5 ⑤ ~ Modèle client ~
Créer un site EC avec Rails 5 ⑩ ~ Créer une fonction de commande ~
Lancez EC2 Rails
Créer un site EC avec Rails5 ⑦ ~ Adresse, modèle de genre ~
Créer un site EC avec Rails5 ④ ~ En-tête et pied de page ~
rails db: échec de la migration!
Résumé de la commande [Rails] rails db
Déployer RAILS sur EC2
Créez un site EC avec Rails5 ⑥ ~ entrée de données de départ ~
liste de commandes docker-compose (pour Rails)
Préparation au développement avec Rails
(Pour les débutants) [Rails] Installer Devise
Créer un site EC avec Rails5 ② ~ Paramètres Bootstrap4, définition du contrôleur / action ~
[Rails] Comment exécuter "rails db: create" etc. dans l'environnement de production EC2