2018/03/14 kintone café 仙台 Vol.11
~kintoneでここまでできる!~
kintone からER図を作成してみた
ハッシュタグ#kintonecafe
自己紹介
CData Software
“SELECT * FROM クラウド”
をキーワードにクラウドデータ
接続を標準化
Twitter : @kuwazzy
Facebook : Yoshiyuki.Kuwajima
SlideShare : http://www.slideshare.net/cdatajapan
Qiita : http://qiita.com/kuwazzy
Github : https://github.com/kuwazzy
Codezine : https: //github.com/kuwazzy
桑島@kuwazzy
技術担当ディレクター
今日のチャレンジ
https://kintone.cybozu.co.jp/jp/ad023/ https://www.kintone.com/solutions/database-management/
Kintone(=データベース)のデータモデルを ER図で表現することは
出来ないだろうか?
データベースの設計書 といえば ER図
例) MySQL サンプルデータベース sakila
拡大
[E]
エンティティ
(テーブル)
[R]
リレーション
シップ
国(country)には複数の都市 (city)が存在
1:n の関係
一般的なデータベース(RDB)とkintoneの関係
カテゴリ RDB kintone
オブジェクト
インスタンス サブドメイン
テーブル アプリ
カラム、アトリビュート フィールド
クエリー
SQL
- SELECT
- INSERT
- UPDATE
- DELETE
REST API
- GET
- POST
- PUT
- DELETE
キー
主キー
レコード番号
(別に業務キーがあるとベター)
外部参照キー
無し
(あえていうとルックアップ)
具体的には
テーブル一覧
フォーム定義
レコード一覧
アプリ一覧
テーブル定義(カラム一覧)
レコード一覧
どうやってER図を作るか?
そもそも、設計方法が違う
RDB kintone
設計方法 正規化・ER図
アジャイル
(アプリを作りながら考える)
ステップ
論理設計 → 物理設計→
実装→ 利用
実装 → 利用→ 改善
アプリ定義からER図をリバースエンジニアリング
どうやってER図を作るか?
REST
API
JDBC
ODBC
ER図作成ツール
・アプリ一覧
・フォーム定義
・テーブル一覧
・テーブル定義
今回使ってみたER図作成ツール ERMASTER
http://ermaster.sourceforge.net/index_ja.html
• Eclipse プラグイン
• JDBCドライバ経由でリバースエンジニアリング可能
• 記法:IE/IDEF1Xに対応
• テーブル定義書やDDL(CREATE TABLE) の生成も可能
対象としたkintoneアプリ
手順
① EclipseでERMaster
の新規ファイルを作成
② データベースからのインポート ③ JDBC Driverの
kintoneへの接続設定
④ インポートするテーブル
(アプリ)を選択
インポートしたデータモデル
• PK(主キー)はレコード番号
• 問合せ管理アプリ内のテーブル(対応詳細)は別テーブル
• リレーションシップは設定されない
完成したデータモデル
• アプリ間の関係を
リレーションシップ
で表現
テーブル定義も出力できるらしい
【宣伝】CData Sync for kintone
• 分析用DB・他アプリ・ツールからの利用
• kintone データのバックアップ・アーカイブ
• インテリジェントな差分更新
• スケジューリングによるオートメーション
https://www.cdata.com/jp/sync/
Kintone のデータをまるっとRDBにレプリケーション
(複製)してしまえばER図作成なんて簡単
まとめ
kintone のER図ってどんな場合に必要?
• 他システムとデータ連携する場合
• 数あるkintoneアプリのデータの関係を俯瞰して把握したい場合
• 納品物としてデータベース設計書を求められる場合
アプリ定義からリバースエンジニアリングでRDBと
同じようなER図を作成するというアプローチ

kintone からER図を作成してみた