1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

疑似的な本貸出の仕組みを作る(Ruby経由でPostgresqlで接続)

Last updated at Posted at 2019-10-24

勉強メモ。

#1.目標
 Windowsバッチに対して入力した内容を元に、RubyでPostgresqlに接続し、
疑似的に本の検索と貸出ができる仕組みを作ること

#2.目的
①情報を管理のための各概念を関連付けることのイメージを何か一つ持ちたい
②プログラムからDBMSにつなぐ方法を知りたい
③Windowsバッチを実際に書いて学びたい
④Rubyを実際に書いて学びたい

#3.やったこと
##3-1.前提条件
・Windowsバッチを、本の検索・貸出システムの入力画面に見立てる
・WindowsバッチがRubyを実行する
・RubyがPostgresqlに接続し、SQLを実行する

##3-2.概要
①概念の関係を整理する
②Postgresqlをインストールする
③必要なテーブルを作る
④メニューもどきを用意する
⑤SQLを実行する文をRubyで書く

##3-3.各論
###①概念の関係を整理する
▼やったこと
・『UMLモデリングの本質』を参考に、型図を書いた。
 画像1.PNG

▼学んだこと
・管理するのは呼称と実体だったりする(「書名」と「蔵書」(人事システムなら、社員IDと社員番号みたいなものか))
・アクションを指す概念(ex.貸出、返却)は汎化して、個々の概念を下位の概念とすることができる。
 (人事システムなら、上位:発令、下位:退職発令、雇用発令など)
・汎化したら実際の管理方法としては区分管理になるはず。アクションを指す概念は、
 処理区分は必須で持つだろうし、アクションによって変更されるところの対象の
 コードや区分を持つのだろう。

###②Postgresqlをインストールする
▼やったこと
・以下のサイトを見てインストール

 PostgreSQLのダウンロード及びインストール
 https://www.dbonline.jp/postgresql/install/index1.html

▼学んだこと
・パスワード忘れて困った。

###③必要なテーブルを作る
▼やったこと
・以下のテーブルを作った(名前は適当)

 ・book (book_no,book_name,author 等)
 ・collection (collection_no,book_no(FK),rental_flag,rental_user_no,return_plan_date 等)
 ・member (menber_no,member_name, member_password 等)
 など

▼学んだこと
・返却予定日って、貸出履歴側に持っておいて、抽出時に基準日指定の開始日で取れると
 思うけれど、検索の頻度の方が高そうだから、蔵書側に持っていた方がいいのだろうな
 と思った。

###④メニューもどきを用意する
▼やったこと
・Windowsバッチで

#4.学んだことまとめ

#99.参考
▼図書館システム
https://ksuap.github.io/2016spring/library/index.html

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?