SlideShare a Scribd company logo
1 of 27
Next-L Enju 開発ワークショップ #4
          「資料の統計」

      2012年5月19日
         田辺浩介
前回からの主な進捗
Next-L Enju Leaf 1.0.5.rc3リリース
Windows上で動くことを確認
  RailsInstallerを使用
  手間はLinux/Macとあまり変わらない気がする
図書館の統計情報の取得
図書館に必要な統計
貸出回数
 資料ごと
 利用者ごと
予約回数
 資料ごと
 利用者ごと
図書館に必要な統計
蔵書数
 館ごと
 資料区分ごと
 除籍冊数
利用者数
 登録者数
図書館に必要な統計
ほかにもなにが必要か考えてみよう!
統計に関係するモデル
書誌 (Manifestation), 所蔵 (Item)
利用者 (User)
貸出 (Checkout), 予約 (Reserve)
図書館 (Library), 書架 (Shelf)
件名 (Subject)
ほかにもあるかも?
決めること
統計に必要なデータの管理はどのモデルの
 役割か
たとえば、「館ごとの蔵書数」
 所蔵情報 (Item)
 図書館 (Library)
 書棚 (Shelf)
   所蔵は書棚に属し、書棚は図書館に属するため
組み立て戦略
必要なモデルを選ぶ
選んだモデル間の関連を追う
集計に必要な属性がどのモデルに存在するかを
 把握する
モデル間の関連
モデル間の関連
1対1
 belongs_to / has_one
1対多
 belongs_to / has_many
 has_one through
多対多
 has_many through
1対1
貸出1件に対する返却は1件
返却1件に対する貸出は1件


以下のファイルを見てみよう
 app/models/checkout.rb
 app/models/checkin.rb
1対1
貸出1件に対する返却は1件
返却1件に対する貸出は1件


以下のファイルを見てみよう
 app/models/checkout.rb
 app/models/checkin.rb
1対多(1)
1件の所蔵に対する貸出は複数存在
1件の貸出に対する所蔵は1件


以下のファイルを見てみよう
 app/models/item.rb
 app/models/checkout.rb
1対多(2)
1人の利用者に対する権限は1件
1件の権限に対する利用者は複数


以下のファイルを見てみよう
 app/models/user.rb
 app/models/user_has_role.rb
 app/models/role.rb
多対多
1件の書誌に対する出版者は複数存在
1人の出版者に対する書誌は複数存在


以下のファイルを見てみよう
 app/models/patron.rb
 app/models/produce.rb
 app/models/manifestation.rb
Railsでの関係の定義
モデルとモデルの所属関係を決める
所属される側のモデルに以下のカラムを追加
 所属するモデルのモデル名を
 単数形にし、さらに末尾に” _id”をつける
 データ型はinteger
関連の定義例(1)
BlogモデルとPostモデルが存在
各モデルは以下のように作成されている
 $ rails g scaffold Blog title:string
 $ rails g scaffold Post body:text


 $ rake db:migrate を忘れないこと
関連の定義例(2)
BlogモデルとPostモデルが存在
ひとつのBlogには複数のPostが存在


Blog has_many Posts
Post belongs_to Blog
関連の定義例(3)
app/models/blog.rbに以下を追加
 has_many :posts


app/models/post.rbに以下を追加
 belongs_to :blog
関連の定義例(4)
Postモデルにblog_idカラムを追加
 rails g migration AddBlogIdToPost blog_id:integer
関連の定義例(5)
データを用意する
 rails c
 >> blog = Blog.create(:title => '田辺のブログ')
   >> post = Post.create(:body => 'Enju開発ワーク
   ショップに行ったよ')
関連の定義例(6)
関連を確認し設定する
 >> blog.posts # blogにひも付いているpostを取得
   => []
   >> blog.posts << post # postを追加
   => [#<Post id: 1, body: "Enju開発ワークショップ
   に行ってきた", created_at: "2012-05-18 18:28:18",
   updated_at: "2012-05-18 18:29:35", blog_id: 1>]
   >> blog.posts # もう一度取得してみる
Blogから見たPostは複数あるため、
  メソッドが“ blog.posts”と複数形になってい
関連の定義例(7)
関連づけを逆方向から確認する
 >> post.blog
   => #<Blog id: 1, title: "田辺のブログ", created_at:
   "2012-05-18 18:28:04", updated_at: "2012-05-18
   18:28:04">
Postから見たBlogはひとつのため、
 メソッドが“ post.blog”と単数形になっている
実習(1)
以下のように作成されたUserモデルがあります
 $ rails g model User email:string


ひとりのUserはひとつだけBlogを作れるとしま
 す
どのように関連を設定すればよいでしょうか
実習(2)
各自で図書館に必要な統計を考えてください
その集計に必要なモデルを選び、関連を調べて
 ください
関連をもとに、クエリを設定してください
実習(2)
図書館に必要な統計を考えよう
その集計に必要なモデルがどれかを選ぶ

More Related Content

Viewers also liked (6)

Brand Building in a Digital World
Brand Building in a Digital WorldBrand Building in a Digital World
Brand Building in a Digital World
 
Decoding Demand Opportunities
Decoding Demand OpportunitiesDecoding Demand Opportunities
Decoding Demand Opportunities
 
Agilität schlägt Strategie
Agilität schlägt StrategieAgilität schlägt Strategie
Agilität schlägt Strategie
 
Are You Ready For A Digital-First Future?
Are You Ready For A Digital-First Future?Are You Ready For A Digital-First Future?
Are You Ready For A Digital-First Future?
 
Next Level Digital - Growing consumer brands in a digital-first future
Next Level Digital - Growing consumer brands in a digital-first futureNext Level Digital - Growing consumer brands in a digital-first future
Next Level Digital - Growing consumer brands in a digital-first future
 
Food Trends in a Digital World
Food Trends in a Digital WorldFood Trends in a Digital World
Food Trends in a Digital World
 

Similar to Next-L Enju 開発ワークショップ #4

ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネス
Mie Mori
 
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
Takayuki Shimizukawa
 
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
Nobuaki Oshiro
 
EPUB3以降とReadium
EPUB3以降とReadiumEPUB3以降とReadium
EPUB3以降とReadium
Makoto Murata
 

Similar to Next-L Enju 開発ワークショップ #4 (20)

10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
 
20180630 data transformationusinglogicflow
20180630 data transformationusinglogicflow20180630 data transformationusinglogicflow
20180630 data transformationusinglogicflow
 
JavaScriptテンプレートエンジンで活かすData API
JavaScriptテンプレートエンジンで活かすData APIJavaScriptテンプレートエンジンで活かすData API
JavaScriptテンプレートエンジンで活かすData API
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネス
 
.NET の今と今後に思うこと
.NET の今と今後に思うこと.NET の今と今後に思うこと
.NET の今と今後に思うこと
 
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
 
スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤
 
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
 
AWSで作る分析基盤
AWSで作る分析基盤AWSで作る分析基盤
AWSで作る分析基盤
 
Tokyo r25 hiro_macchan
Tokyo r25 hiro_macchanTokyo r25 hiro_macchan
Tokyo r25 hiro_macchan
 
.NET の今と今後に思うこと (Tokyo Ver.)
.NET の今と今後に思うこと (Tokyo Ver.).NET の今と今後に思うこと (Tokyo Ver.)
.NET の今と今後に思うこと (Tokyo Ver.)
 
モデルベースソフトウェア開発
モデルベースソフトウェア開発モデルベースソフトウェア開発
モデルベースソフトウェア開発
 
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
 
EPUB3以降とReadium
EPUB3以降とReadiumEPUB3以降とReadium
EPUB3以降とReadium
 
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化
 
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
 
GeneratingWikipedia_ICLR18_論文紹介
GeneratingWikipedia_ICLR18_論文紹介GeneratingWikipedia_ICLR18_論文紹介
GeneratingWikipedia_ICLR18_論文紹介
 
9.6 Million Links in Source Code Comments: Purpose, Evolution, and Decay (日本語版)
9.6 Million Links in Source Code Comments: Purpose, Evolution, and Decay (日本語版) 9.6 Million Links in Source Code Comments: Purpose, Evolution, and Decay (日本語版)
9.6 Million Links in Source Code Comments: Purpose, Evolution, and Decay (日本語版)
 

More from Kosuke Tanabe

More from Kosuke Tanabe (20)

Next-L Enju ワークショップ #91
Next-L Enju ワークショップ #91Next-L Enju ワークショップ #91
Next-L Enju ワークショップ #91
 
Next-L Enju ワークショップ #90
Next-L Enju ワークショップ #90Next-L Enju ワークショップ #90
Next-L Enju ワークショップ #90
 
Next-L Enju ワークショップ #89
Next-L Enju ワークショップ #89Next-L Enju ワークショップ #89
Next-L Enju ワークショップ #89
 
Next-L Enju ワークショップ #88
Next-L Enju ワークショップ #88Next-L Enju ワークショップ #88
Next-L Enju ワークショップ #88
 
Next-L Enju ワークショップ #86
Next-L Enju ワークショップ #86Next-L Enju ワークショップ #86
Next-L Enju ワークショップ #86
 
Next-L Enju ワークショップ #78
Next-L Enju ワークショップ #78Next-L Enju ワークショップ #78
Next-L Enju ワークショップ #78
 
オープンソースの図書館システムNext-L Enjuのいまとこれから
オープンソースの図書館システムNext-L Enjuのいまとこれからオープンソースの図書館システムNext-L Enjuのいまとこれから
オープンソースの図書館システムNext-L Enjuのいまとこれから
 
Next-L Enju ワークショップ #75
Next-L Enju ワークショップ #75Next-L Enju ワークショップ #75
Next-L Enju ワークショップ #75
 
Next-L Enju ワークショップ #76
Next-L Enju ワークショップ #76Next-L Enju ワークショップ #76
Next-L Enju ワークショップ #76
 
Next-L Enju ワークショップ #74
Next-L Enju ワークショップ #74Next-L Enju ワークショップ #74
Next-L Enju ワークショップ #74
 
nextlenju73
nextlenju73nextlenju73
nextlenju73
 
Next-L Enjuのご紹介(2018年版)
Next-L Enjuのご紹介(2018年版)Next-L Enjuのご紹介(2018年版)
Next-L Enjuのご紹介(2018年版)
 
Next-L Enju ワークショップ #65
Next-L Enju ワークショップ #65Next-L Enju ワークショップ #65
Next-L Enju ワークショップ #65
 
enju_ws_65
enju_ws_65enju_ws_65
enju_ws_65
 
Next-L Enju ワークショップ #64
Next-L Enju ワークショップ #64Next-L Enju ワークショップ #64
Next-L Enju ワークショップ #64
 
Next-L Enju ワークショップ #62
Next-L Enju ワークショップ #62Next-L Enju ワークショップ #62
Next-L Enju ワークショップ #62
 
Next-L Enju ワークショップ #62
Next-L Enju ワークショップ #62Next-L Enju ワークショップ #62
Next-L Enju ワークショップ #62
 
Next-L Enju LRM
Next-L Enju LRMNext-L Enju LRM
Next-L Enju LRM
 
Enju ws 60
Enju ws 60Enju ws 60
Enju ws 60
 
Next-L Enju 開発ワークショップ #59
Next-L Enju 開発ワークショップ #59Next-L Enju 開発ワークショップ #59
Next-L Enju 開発ワークショップ #59
 

Recently uploaded

研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
atsushi061452
 

Recently uploaded (12)

Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
 

Next-L Enju 開発ワークショップ #4