ER図つくーる

先日、データモデリングっていう話を見て、こういうものを作らないといけんらしいという事を知り。(20年間脳内で作ってマニュアルに落とし込んでたww)

一人でやるっていうのは、こういう事で。俗人化で。よろしくなくて。
ちょっとやってみようと思った。

なお、ツイッターでモゴモゴ言ってたら、優しい人がいて。


なんと説明動画を作ってくれたんだ。

んだがしかし、色々大変そうで。(いややるけれども)
ふと、ファイルメーカーで作ったもんから、ざくっと出ればいいんじゃないか?って思った。
以下取得を考えつつ。もごもご。

使えそうなアレコレ

前に構造チラ見君作ってた時に、これもいいなと思ってて
これを使う
Online FlowChart & Diagrams Editor - Mermaid Live Editor
https://mermaid-js.github.io/mermaid-live-editor/
ようするにこの黄色い部分を吐き出せれば、図を作ってくれるんじゃろ!?

画像1

使えそうな計算式

RelationInfo ( ファイル名 ; テーブル名 )
https://help.claris.com/ja/pro-help/content/relationinfo.html

毎度うかっとわすれる。テーブル名ってあるけど、TO名。
これ絶対、ぁあん?てなる気がするけど、どうなんだろ。
私の使い方がまちがってんのかしら。

んで、これを入れると、データソース名(テーブル名)と
オプション 作るか?ソートは?と
なんのフィールドで繋がってるか教えてくれる。


Source:相方データソース名
Table:相方To名
Options:クリエイトとかなんたら
こっからリレーションが改行区切りでザクザク
そのあと一行あいて
Source:相方データソース名
と続いていく。

TableNames (ファイル名)

ファイル名のリレーションシップグラフで使用されているすべてのテーブルオカレンスの一覧を返します。

TableNames ( get(ファイル名 )) でぜーんぶとれる。

自分のソース名どっからとるんだろ。

まあ数珠繋ぎで取ればいいんだろうけども。

独りぼっちの時は、答えがない。
TOからテーブル名を取得するなんかがあるといいんだけど。
とりあえず、今わかんないのでボッチは生ファイルっていう事で
そのままだろ!?と思っておくことにする。

と思ってたら、式をFMTokyoでフッキーが教えてくれた。
ExecuteSQL ( "SELECT BaseTableName FROM FILEMAKER_TABLES WHERE TABLENAME = ?" ; "" ; "" ; TO名 )

んで
ER図的にみると
データソース名ってのは、ユニーク表示であると仮定
TO同士のつなぎを、これにつなぐ。
TO名は、データソース名のエイリアスである。

リレーションは。
相手のTO名:フィールド名 = 自分のTO名:フィールド名
で記載されている。
全体を通して、この各フィールド名もユニーク表示である。

ここへきて、そうそうフィールド名と思って

画像2

ぐぬぬ。

あのあの先生のこういうのが・・・

画像3

書けるだろうと思っていたんだが。

また探す旅にでる

あったがなw

画像4

比較的、望みに近い感じではなくて!?すてきやん!!ねえ!

これをウェブビューアでできたらいいなと思ったが。

windowsなもんで?・・・さておき。

目的を達成すべく、スクリプトをぷりぷり書く。

途中、リレーションしてないフィールド名も飾りでおいとくといいんじゃないか?って思ったりして。
FieldNamesはレイアウトからしか取れんし~お手間かかるなーって。
クネクネしてたらフッキーが教えてくれた。

画像5

ExecuteSQL ( "SELECT TableName,FieldName FROM FileMaker_Fields WHERE TableName = ?" ; "::" ; "¶" ; TO名 )
TO名からフィールド名の一覧取れるのはこれだ!

なお。私はExecuteSQLは、外のも取れると思ってたんだ。

ほんとは、ファイル一個つくって。

そこから、今のファイルに対してやれたら、組み込む必要もないし、
便利だなーって。

とまあ、スクリプトをコピペしたら使えるって方向でいいか。
最後のxmlはくところだけ、フィールド拝借して。

となりまして。
ちまちま書いて。
途中やる気スイッチがなくなったりしたけど・・・

できたよ!!!!!!!!!

スクリプトって偉いな~
んでまあ、TO一個に対して2~3秒かかるかな。1~2秒かな・・・

画像6

ざくっとした手順としては

TableNames ( get(ファイル名 )) で全部とる。
RelationInfo ( ファイル名 ; テーブル名 )で、総当たりする。
途中教えてもらったSQLのでその子の元ファイル名とったり
フィールドとったり。
ループでぐるんぐるんまわす。
jsonにいれる。
jsonの見出し?は、勝手にインデックスになるっていうか、ユニークにしてくれるから、どんどん押し込んだ。

本当は、テーブル名と元ファイル名をのせたかったけど、そうすると横幅が大きくなってだな・・・改行が入れれたかもしれんが、もう気力がなかった。
テーブル名だけに戻して作成。

今日はファイルおかないのか!?
ちょっと心配だから来週ミンキーでもんでもらってから・・・!!

色んなファイルで試してガッテンしてから!

これをやってよかったなって思ったのは、大元で消してるTOとか
ゴミが残ってたやつも拾えた。

というわけで、見直しなどにいかがですか!!!
便利っぽくないっすかw



って・・思い出した。ひとりぼっちの子のXML書き出してねええええ・・・

もう月曜だし。

今週の勉強はこんぐらいでいいか!!

あとなんだっけなー

気になってるのが、今泉さんが言ってた「タイミング図?」

データがどのタイミングでどう更新されるのか?
それって超大事やなって思った。
あとなんかその手前の人形でるやつ?・・

なんかわからんけど、いつも今泉さんはヒントをくれる。
時々惑わせるけど!!来週またきこ。
私も今泉さんの所で修行がしたい。。。
ミンキーがあって幸せだな。


この記事が気に入ったらサポートをしてみませんか?