見出し画像

テーブルの設計 その2”情報と項目の整理"

■ 今は良い時代

現代(2024年1月時点)は、良い時代になりました。
それは、AIをユーザー側で利用できる時代になったこと。
私が良く利用するのが、Open AIが提供するChat GTPです。
有料版は契約していないですが、無料版でも、結果に対して正しい判断ができれば、十分に活用できます。
今回の事例に対して、こんな質問をしてみました。

Chat GTP に質問した内容

すると、こんな回答を出してくれます。

Chat GTP の回答の一部

一見、正しそうですが、料金設定テーブルに欠陥があり、実際には使用できません。また、キー、項目の設定もイマイチ。
ですが、主要なエンティティを3個提案してくれる所は優秀です。
全部を信用して使うことはダメです。
ですが、アイディアを提供してくれる相棒だとすると、利用する価値が十分にあると思います。

今回私は、AIに頼っていませんが、AIはアプリ作成の初心者🔰の人は、良き相談相手として、テーブル設計に役に立つかもしれません。

はい!余談は、ここまで。本題に入ります。

ワイの経験からテーブル設計手法を数回に分けて紹介していきます。
ただし、感覚的に脳内処理されることが多く、上手に表現できるか心配ですが、それでも頑張って文字起こしします。

■ 項目(データ)と情報を洗い出す

さて、ここからが本番です。
現状把握で調べた内容(細かい項目等)と、前回の情報の整理で残った情報に書き加えていきます。
データインターフェースの制限で、一確するケースもあります。

残った情報は、下の3つ。

  • 宅配指示書

  • 送料の早見表

  • 梱包箱

これらの情報に、関連する項目を書き加えていきます。
ここでは、間違っていても良いです。兎に角、項目を洗いざらい書き出すことが重要になってきます。
もし、情報に加えられない項目(データ)が出た時は、追加で情報を追加します。

| 宅配指示書

この情報は、R/3からのダウンロードデータなので、一確。
テキストデータの情報をそのまま定義します。

  • 出荷伝票番号

  • 出荷区分

  • 出荷先コード

  • 受注先

  • 出荷先名

  • 配達方法

  • 郵便番号

  • 住所1

  • 住所2

  • 宛先

  • 電話番号

  • 備考

| 送料の早見表

運賃を決定する早見表。まぁ、リアルに紙です。
紙に書いてある情報を全て書き出しします。

  • 地方

  • 都道府県

  • 梱包箱

  • 重量

  • メジャーメント

  • 梱包サイズ

  • 宅配業者

  • 運賃

| 梱包箱

紙に出力している宅配指示書に手書きしている使用した段ボールの種類です。

  • 梱包箱

| その他の項目

情報を整理して、情報に入らない項目(データ)を、とりあえず、その他で書き出し。

  • 受注キャンセル

  • 同梱出荷

  • 営業所止め

  • 口数

  • 出荷日

  • 表示順番

とりえず、これで入り口は終了です。
次の工程に移ります。

■ 項目のグルーピング

その他の情報の項目を再度、情報に割り付けるか、新しく情報として作成して、項目を情報毎に、分けていきます。
ここで、1つの情報じゃなく、分割したい場合は、ここで分割してしまいます。
私は、ここで、QC手法のKJ法を良く活用します。
KJ法をわかりやすく解説してくれているwebサイトがありましたので、リンクをペタリとします。

私は、ここを手書き(超アナログ)で仕上げることが多いです。
ですが、手書きは、記事でアップできないので、イメージだけでも。

先ずは、こんな感じで始まります。
今回の場合、その他の情報は、全て、宅配指示書に入れました。

Excelでシェイプを作るのは、結構面倒なので、下のようなマクロを作ると作業性が上がります。

Sub Macro1()
    
    Dim textA As String
    textA = ActiveCell.Text
    
    Dim shapeA As Shape
    Set shapeA = ActiveSheet.Shapes.AddShape(msoShapeFoldedCorner, 100, 100, 120, 19)
    
    shapeA.TextFrame2.TextRange.Characters.Text = textA
    shapeA.TextFrame2.TextRange.Font.NameFarEast = "BIZ UDPゴシック"
    shapeA.TextFrame2.TextRange.Font.Size = 9
    shapeA.TextFrame2.TextRange.ParagraphFormat.Alignment = msoAlignLeft
    shapeA.TextFrame2.VerticalAnchor = msoAnchorTop
    shapeA.ShapeStyle = msoShapeStylePreset2
    shapeA.Placement = xlMove
    
End Sub

アクティブセルの表示テキストでシェイプを作るマクロです。

■ 手続きと情報の関連付け

で、ここが結構重要な所になります。
手続きの流れと情報をリンクさせます。
もし、不足している情報がある場合、追加したり、不要な情報は削除したり、柔軟に絵を描いていきます。

要件定義で描いた改善案の絵を元に描いていきます。

要件定義で描いた改善案のフロー
要件定義を元に描いたKJ法の絵

こうやって、データの流れ、必要とされる項目(データ)を描くことで、余分なデータ、必要な項目、不足している情報(エンティティ)、必要な画面(更に、トランザクション)が、可視化されてきます。

今回は、ここまでです。
実は、まだテーブル設計の入り口には、まだ入っていません。
ここまでの作業は、テーブルの設計に入るための準備です。

■ まとめ

私の完全な自論になってしまいますが、システムを作れる人と作れない人の差は、「処理とデータを絵にすることができる」にあると思います。

今回のような、小さなツールだけでも、多い情報です。
情報とデータ、業務を一つの絵にすることができなければ、システムのメニューも作れないですし、テーブルの設計もできません。

描いたKJ法は、そのまま仕様書としても役に立ちますし。
何と言っても、テーブルの設計とシステムの処理画面の原案になります。

小さなシステムを作る人は、KJ法を学んで欲しいと思います。

ここまで、読んでくれて、本当にありがとうございました。
次回は、やっとテーブルの正規化にステージに入ります。

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