体重133キロからのプログラミング

体重はちょっと減って今125キロです。

g-notice テーブル設計

g-noticeのテーブル設計をする。
ガンプラの出荷予定日通知アプリ)

テーブル設計

バンダイ公式の出荷予定はこのような形式をしている。

f:id:poinorou:20210324184735p:plain
商品出荷予定

SR noというものは何なのか良くわからないので必要なさそう。
HGやMGといったスケールも入れたいので下記のようなテーブル設計とした。

id scale item_code name price shipment_date note_text updated_at
primary_key varchar int varchar int datetime text timestamp

スケールは4文字で十分だろうけど、新しいものが追加されるかもなので10文字くらいで。*1

上記を踏まえて、CREATE TABLE文は以下のようになる

CREATE TABLE g_notice.shipment (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
scale VARCHAR(10),
item_code INT,
name VARCHAR(256),
price INT,
shipment_date DATETIME,
note_text TEXT,
updated_at TIMESTAMP NOT NULL
);

f:id:poinorou:20210405214927p:plain

一応商品名にはインデックスを張っておく。

ALTER TABLE shipment ADD INDEX name(name);

今後の予定

明日はExpressから上記DBへアクセスし、CRUD操作を行えるようにする。 *2
また、PDFをパースした際にどういった形になるのかわからないため、パースした内容を出力するところまでは早めにやっておきたい。

*1:ガンプラにはPG(1/60)、MG(1/100)、RG(1/144)、HG(1/144)の4種類のスケールが存在するがMGEXなど特殊なものもある

*2:ブログが次回更新される日を「明日」と呼ぶことにした