ITを駆使する猫エンジニア

 おはようございます、童爺です。

 

 今回はDelphiで会員管理システム(仮)を作るにあたり、SQLiteでデータベースとテーブルと初期値を作成したので記事にしたいと思います。

 

 まずは、作成したデータベースですがmms.sqlite3としました。

 

 これは、Membership management systemの略です。

 

 まんまですね(;^ω^)

 

 で、読み込ませたSQLファイルを公開します。

 

 まずは、管理者のファイルですね。

 

/* administrator.sql */

CREATE TABLE administrator (
    id        integer NOT NULL,
    adminname text,
    password  text,
    PRIMARY KEY (id)
);

INSERT INTO administrator (id, adminname, password) VALUES( 1,'admin', '5f4dcc3b5aa765d61d8327deb882cf99');
 

 

 編集可能な管理者の情報テーブルです。

 

 次に県のファイルです。

 

/* ken.sql */

CREATE TABLE ken (
    id  integer,
    ken text,
    PRIMARY KEY (id)
);

INSERT INTO ken (id, ken) VALUES(  1,'北海道');
INSERT INTO ken (id, ken) VALUES(  2,'青森県');
INSERT INTO ken (id, ken) VALUES(  3,'岩手県');
INSERT INTO ken (id, ken) VALUES(  4,'宮城県');
INSERT INTO ken (id, ken) VALUES(  5,'秋田県');
INSERT INTO ken (id, ken) VALUES(  6,'山形県');
INSERT INTO ken (id, ken) VALUES(  7,'福島県');
INSERT INTO ken (id, ken) VALUES(  8,'茨城県');
INSERT INTO ken (id, ken) VALUES(  9,'栃木県');
INSERT INTO ken (id, ken) VALUES( 10,'群馬県');
INSERT INTO ken (id, ken) VALUES( 11,'埼玉県');
INSERT INTO ken (id, ken) VALUES( 12,'千葉県');
INSERT INTO ken (id, ken) VALUES( 13,'東京都');
INSERT INTO ken (id, ken) VALUES( 14,'神奈川県');
INSERT INTO ken (id, ken) VALUES( 15,'新潟県');
INSERT INTO ken (id, ken) VALUES( 16,'富山県');
INSERT INTO ken (id, ken) VALUES( 17,'石川県');
INSERT INTO ken (id, ken) VALUES( 18,'福井県');
INSERT INTO ken (id, ken) VALUES( 19,'山梨県');
INSERT INTO ken (id, ken) VALUES( 20,'長野県');
INSERT INTO ken (id, ken) VALUES( 21,'岐阜県');
INSERT INTO ken (id, ken) VALUES( 22,'静岡県');
INSERT INTO ken (id, ken) VALUES( 23,'愛知県');
INSERT INTO ken (id, ken) VALUES( 24,'三重県');
INSERT INTO ken (id, ken) VALUES( 25,'滋賀県');
INSERT INTO ken (id, ken) VALUES( 26,'京都府');
INSERT INTO ken (id, ken) VALUES( 27,'大阪府');
INSERT INTO ken (id, ken) VALUES( 28,'兵庫県');
INSERT INTO ken (id, ken) VALUES( 29,'奈良県');
INSERT INTO ken (id, ken) VALUES( 30,'和歌山県');
INSERT INTO ken (id, ken) VALUES( 31,'鳥取県');
INSERT INTO ken (id, ken) VALUES( 32,'島根県');
INSERT INTO ken (id, ken) VALUES( 33,'岡山県');
INSERT INTO ken (id, ken) VALUES( 34,'広島県');
INSERT INTO ken (id, ken) VALUES( 35,'山口県');
INSERT INTO ken (id, ken) VALUES( 36,'徳島県');
INSERT INTO ken (id, ken) VALUES( 37,'香川県');
INSERT INTO ken (id, ken) VALUES( 38,'愛媛県');
INSERT INTO ken (id, ken) VALUES( 39,'高知県');
INSERT INTO ken (id, ken) VALUES( 40,'福岡県');
INSERT INTO ken (id, ken) VALUES( 41,'佐賀県');
INSERT INTO ken (id, ken) VALUES( 42,'長崎県');
INSERT INTO ken (id, ken) VALUES( 43,'熊本県');
INSERT INTO ken (id, ken) VALUES( 44,'大分県');
INSERT INTO ken (id, ken) VALUES( 45,'宮崎県');
INSERT INTO ken (id, ken) VALUES( 46,'鹿児島県');
INSERT INTO ken (id, ken) VALUES( 47,'沖縄県');

 

 これは、どんな管理システムでも使いそうな定番テーブルなのでそんなに悩みませんでした。

 

 次がメンバーのテーブルです。

/* member.sql */

CREATE TABLE member (
    id         integer NOT NULL,
    username   text,
    password   text,
    last_name  text,
    first_name text,
    birthday   text,
    ken        interger,
    reg_date   text,
    cancel     text,
    PRIMARY KEY (id)
);

INSERT INTO member (username, password, last_name, first_name, birthday, ken, reg_date, cancel) VALUES('user', '5f4dcc3b5aa765d61d8327deb882cf99', '山田', '和夫', '20130101','1', date('now'), NULL);

 

 同じ名前の方がいたらすみません(;゙゚'ω゚'):

 

 今回はDelphiの勉強が主なので情報は最小限に抑えました。

 

 尚、パスワードのMD5値が、管理者のDefaultと同じなのは、後でどちらも変更可能にするためです。

 

 あと、SQLiteに日付型が無いので、日付をどう管理するか悩みまして、Web検索しまくった結果、textで管理している方が多かったのでtextにしました。

 

 次は、仮登録のテーブルです。

/* premember.sql */

CREATE TABLE premember (
    id         intege NOT NULL,
    username   text,
    password   text,
    last_name  text,
    first_name text,
    birthday   text,
    ken        integer,
    reg_date   text,
    PRIMARY KEY (id)
);

 

 と、こんな感じです。

 

 データベース及びテーブルとデータの作成は、以下のサイトと参考書を参考にしました。

 

SQLite入門

 

 と、参考書が、

 

 

 です。

 

 一応、参考書の内容を踏まえながら、Delphiで作ってみようと考えています。

 

 ですが、PHP7とDelphiは別物なので、あくまで参考程度にしようと考えています。

 

 で、今悩んでいるのは、最初に管理者画面を表示しログインに成功したら、メンバー画面を表示しようと思ったのですが、どちらをメインフォームにするかですね。

 

 Delphiはメインフォームを閉じるとアプリケーションが終了してしまいます。

 

 そこで管理画面をメインに持ってきて、認証がOKだったら自身は非表示にし、メンバー画面を表示すると言う、ちょっと変な感じの処理を考えています。

 

 でも考えれば考える程、悩んでしまって先に進めなくなっています。

 

 そんな感じです。

 


 

 それではまた。

 

 でわでわ。