ubuntu에서 디렉토리에 접속해 code .
를 치면 vscode로 열림
schema.db
지도
의 역할을 하는 것이지, 여기서 변경한다고 바뀌지 않음.ActiveRecord
타임스탬프 : 마지막으로 변경된 시간루비온레일즈로 모델링 하기
1. bundle install
gemfile설치
2. rails db:create db:migrate db:seed
db:create
: postgreSQL에 레일즈 명령어를 이용해서 데이터베이스를 생성하는 것db:migrate
: 기존에 넣어둔 마이그레이션 파일을 마이그레이트해서 데이터베이스에 밀어넣는 작업db:seed
: 시드파일에 더미데이터를 넣어놨음. 그 데이터를 데이터베이스에 밀어넣는 작업레일즈에서 명령어를 칠 때는 앞에 rails
명령어로 시작
(1) 상품 만들기 : rails generate(=g) model Item
Item 단수로 적어야 함.
=> db/migrate에 타임스템프가 찍힌 파일 생성됨. models 생성됨.
(2) 옵션 만들기 : rails g model Option item:references name:string stock:integer
포린키
: 외부테이블의 정보를 끌어오기 위해 사용
item
: item이라는 테이블을 참조한다(실제로는 item_id를 의미함)
null: false
: 이 값은 비어있어서는 안된다는 뜻
=> Option에 item Id가 비어있는 경우가 없기 때문
항상 null:false여야 하나? 약한 관계일 때에는 Yes
Order와 User관계처럼, User가 삭제되어도 Order가 삭제되는 것이 아니라 단순히 User의 Id를 null값으로 바꿔주는 관계에서는, user_id가 반드시 null값이 될 수 없는 것은 아님
=> 이 경우 null:false 옵션 지워줘야 함
db:migrate로 저장해주고, schema.db
파일을 열어보면 아래와 같이 저장되어 있다.
(3) 주문 만들기
rails g model Order user:references receiver_name:string receiver_phone: string zipcode:string address1:string address2:string total:integer
=> null : false 옵션 반드시 지워줘야 함
db:migrate
(4) 장바구니 만들기
rails g model LineItem order:references option:references unit_price:integer quantity:integer total:integer
=> 옵션은 null : false 지워줌
db:migrate
데이터베이스 테이블 설정, 각 컬럼 속성 지정, 포린키 설정해서 relation 설정
데이터베이스 설정은 했지만 어플리케이션에서는 아직 구축이 되기 전 상태임
다음에 이어서 : 어플리케이션 설정, N:N관계, 마이그레이션 파일
크# 역시 정리요정
선아님 블로그보고 복습합니다~♡