영수증을 데이터베이스에 저장하고 가계부적인 느낌으로 하고 싶은 그 2 테이블 작성
날짜는 5월 8일이 되어, GW는 끝을 맞이했네요.
올해는 특별히 외출할 수 없었습니다.
내년은 어딘가 여행에 가고 싶은 것입니다.
지난번은 데이터베이스 설계? 했습니다.
이번에는 실제로 테이블을 만들어 보려고 생각합니다.
잘 부탁드립니다!
테이블 상세 결정
전회에서 큰 프레임은 만들었습니다만, 컬럼의 이름이나 형태는 아직 결정하지 않았습니다.
우선은 거기에서 결정해 가려고 생각합니다.
receipt
열 이름
금형
NULL 권한
초기값
기본 키
id
uint
안돼
auto_increment
그래
payment_date
timestamp
안돼
0
다르다
store_id
uint
안돼
1
다르다
payment_amount
uint
안돼
아니
다르다
payment_type_id
uint
안돼
1
다르다
store
열 이름
금형
NULL 권한
초기값
기본 키
id
uint
안돼
auto_increment
그래
store_name_id
uint
안돼
1
다르다
branch_store_name_id
uint
안돼
1
다르다
store_name
열 이름
금형
NULL 권한
초기값
기본 키
id
uint
안돼
auto_increment
그래
store_name
varchar(255)
안돼
아니
다르다
branch_store_name
열 이름
금형
NULL 권한
초기값
기본 키
id
uint
안돼
auto_increment
그래
branch_store_name
varchar(255)
안돼
아니
다르다
item_quantity
열 이름
금형
NULL 권한
초기값
기본 키
receipt_id
uint
안돼
아니
다르다
item_id
uint
안돼
아니
다르다
quantity
uint
안돼
1
다르다
item_price
열 이름
금형
NULL 권한
초기값
기본 키
receipt_id
uint
안돼
아니
다르다
item_id
uint
안돼
아니
다르다
price
uint
안돼
아니
다르다
item
열 이름
금형
NULL 권한
초기값
기본 키
id
uint
안돼
auto_increment
그래
item_name
varchar(255)
안돼
아니
다르다
payment_type
열 이름
금형
NULL 권한
초기값
기본 키
id
uint
안돼
auto_increment
그래
payment_type
varchar(255)
안돼
아니
다르다
대체로 NULL은 버렸습니다.
구구리면서 자력으로 생각했기 때문에, 이상한 부분이 있을지도입니다.
(auto_increment의 시작은 1부터였어요. 처음에 초기값을 0으로 해 실패했습니다.)
테이블 만들기
상세가 정해졌으므로, 실제로 만들어 보겠습니다.
create database household_accounts;
use household_accounts;
create table receipt (
id int unsigned not null auto_increment primary key,
payment_date timestamp not null default 0,
store_id int unsigned not null default 1,
payment_amount int unsigned not null,
payment_type_id int unsigned not null default 1
);
create table store (
id int unsigned not null auto_increment primary key,
store_name_id int unsigned not null default 1,
branch_store_name_id int unsigned not null default 1
);
create table store_name (
id int unsigned not null auto_increment primary key,
store_name varchar(255) not null
);
create table branch_store_name (
id int unsigned not null auto_increment primary key,
branch_store_name varchar(255) not null
);
create table item_quantity (
receipt_id int unsigned not null,
item_id int unsigned not null,
quantity int unsigned not null default 1
);
create table item_price (
receipt_id int unsigned not null,
item_id int unsigned not null,
price int unsigned not null
);
create table item (
id int unsigned not null auto_increment primary key,
item_name varchar(255) not null
);
create table payment_type (
id int unsigned not null auto_increment primary key,
payment_type varchar(255) not null
);
(뒤에서 몇 번이나 실수를 다시 쓰고 있기 때문에, 잘못된 부분이있을지도 모릅니다.)
이것으로 굵은 테이블들이 생겼을 것입니다.
범용 데이터 넣기
가게 이름이 가게 이름을 모르는 경우에 대한 레코드를 넣을 때입니다.
insert into store_name (id, store_name) values (1, '不明');
insert into branch_store_name (id, branch_store_name) values (1, '不明');
insert into store (id, store_name_id, branch_store_name_id )values (1, 1, 1);
이것으로, 가게명이 불명의 경우는 receipt의 store_id에 1 넣으면 괜찮네요.
상품명도 없거나 모르는 경우용으로 불명을 넣을 때입니다.
insert into item values (1, '不明');
지불 방법은 일단 지금 생각해 낸다, 현금, 신용 카드, suica, iD를 넣을 때입니다.
insert into payment_type (id, payment_type) values
(1, '現金'),
(2, 'クレジットカード'),
(3, 'suica'),
(4, 'iD');
이번에는 일단 이것으로 끝납니다.
다음 예정
다음은 실제로 영수증의 데이터를 넣고 싶습니다.
하지만 원시 MySQL에서 데이터 입력은 마음이 망가질 것 같아서 뭔가 뭔가 쉽게 넣을 수 있도록하고 싶네요.
뭔가 좋은 방법이 있는지 찾습니다.
그럼 무례합니다.
Reference
이 문제에 관하여(영수증을 데이터베이스에 저장하고 가계부적인 느낌으로 하고 싶은 그 2 테이블 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/syuki/items/70e96934515c148cf957
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
상세가 정해졌으므로, 실제로 만들어 보겠습니다.
create database household_accounts;
use household_accounts;
create table receipt (
id int unsigned not null auto_increment primary key,
payment_date timestamp not null default 0,
store_id int unsigned not null default 1,
payment_amount int unsigned not null,
payment_type_id int unsigned not null default 1
);
create table store (
id int unsigned not null auto_increment primary key,
store_name_id int unsigned not null default 1,
branch_store_name_id int unsigned not null default 1
);
create table store_name (
id int unsigned not null auto_increment primary key,
store_name varchar(255) not null
);
create table branch_store_name (
id int unsigned not null auto_increment primary key,
branch_store_name varchar(255) not null
);
create table item_quantity (
receipt_id int unsigned not null,
item_id int unsigned not null,
quantity int unsigned not null default 1
);
create table item_price (
receipt_id int unsigned not null,
item_id int unsigned not null,
price int unsigned not null
);
create table item (
id int unsigned not null auto_increment primary key,
item_name varchar(255) not null
);
create table payment_type (
id int unsigned not null auto_increment primary key,
payment_type varchar(255) not null
);
(뒤에서 몇 번이나 실수를 다시 쓰고 있기 때문에, 잘못된 부분이있을지도 모릅니다.)
이것으로 굵은 테이블들이 생겼을 것입니다.
범용 데이터 넣기
가게 이름이 가게 이름을 모르는 경우에 대한 레코드를 넣을 때입니다.
insert into store_name (id, store_name) values (1, '不明');
insert into branch_store_name (id, branch_store_name) values (1, '不明');
insert into store (id, store_name_id, branch_store_name_id )values (1, 1, 1);
이것으로, 가게명이 불명의 경우는 receipt의 store_id에 1 넣으면 괜찮네요.
상품명도 없거나 모르는 경우용으로 불명을 넣을 때입니다.
insert into item values (1, '不明');
지불 방법은 일단 지금 생각해 낸다, 현금, 신용 카드, suica, iD를 넣을 때입니다.
insert into payment_type (id, payment_type) values
(1, '現金'),
(2, 'クレジットカード'),
(3, 'suica'),
(4, 'iD');
이번에는 일단 이것으로 끝납니다.
다음 예정
다음은 실제로 영수증의 데이터를 넣고 싶습니다.
하지만 원시 MySQL에서 데이터 입력은 마음이 망가질 것 같아서 뭔가 뭔가 쉽게 넣을 수 있도록하고 싶네요.
뭔가 좋은 방법이 있는지 찾습니다.
그럼 무례합니다.
Reference
이 문제에 관하여(영수증을 데이터베이스에 저장하고 가계부적인 느낌으로 하고 싶은 그 2 테이블 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/syuki/items/70e96934515c148cf957
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
insert into store_name (id, store_name) values (1, '不明');
insert into branch_store_name (id, branch_store_name) values (1, '不明');
insert into store (id, store_name_id, branch_store_name_id )values (1, 1, 1);
insert into item values (1, '不明');
insert into payment_type (id, payment_type) values
(1, '現金'),
(2, 'クレジットカード'),
(3, 'suica'),
(4, 'iD');
다음은 실제로 영수증의 데이터를 넣고 싶습니다.
하지만 원시 MySQL에서 데이터 입력은 마음이 망가질 것 같아서 뭔가 뭔가 쉽게 넣을 수 있도록하고 싶네요.
뭔가 좋은 방법이 있는지 찾습니다.
그럼 무례합니다.
Reference
이 문제에 관하여(영수증을 데이터베이스에 저장하고 가계부적인 느낌으로 하고 싶은 그 2 테이블 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/syuki/items/70e96934515c148cf957텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)