Tulipには、テーブルという表形式のデータベースが用意されています。行をレコード、列をフィールドと呼びますが、テーブルにどうデータを保存するかはアプリ作成者に委ねられています。
本記事では、テーブルのフィールド項目の決め方について解説します。
データの保存方法
例えば、従業員の個人情報であれば、ID、氏名、役職、入社日などをフィールド(列)項目とすればよいので分かりやすいですが、チェックシートなど多くの項目がある場合は、フィールド(列)項目を増やせばよいのか、レコード(行)を増やせばよいのか悩むこともあるでしょう。
データの保存方法として、「縦持ち」と「横持ち」の保存方法があります。下記に縦持ちと横持ちの例と特徴を記載します。
横持ちの例
横持ちは行と列にそれぞれ異なる項目を配置し、行と列の対応で情報を表します。横持ちの場合、カテゴリ間の比較がしやすい特徴があります。
四半期 | 複合機 | テーブル | 椅子 |
Q1 | 1,183,863 | 8,763,961 | 2,235,000 |
Q2 | 1,428,912 | 6,953,980 | 4,827,708 |
Q3 | 1,702,665 | 7,914,152 | 6,136,693 |
縦持ちの例
縦持ちは対応するデータが縦(行)に追加されている形式です。縦持ちの場合、テーブル構造を変えることなく新規カテゴリを追加しやすく、集計しやすい特徴があります。
オーダー年月 | サブカテゴリ | 売上 | |
Q1 | 複合機 | 1,183,863 | |
Q1 | テーブル | 8,763,961 | |
Q1 | 椅子 | 2,235,000 |
テーブルは横持ちと縦持ちのどちらがよいのか?
データ活用の面でいうと縦持ちが望ましいのですが、Tulipのテーブルにはレコードプレースホルダというテーブル内の1つのレコード(行)をメモリ内に呼び出す仕組みがあります。
このレコードプレースホルダは複数アプリからも非同期ながらリアルタイム表示が可能なため情報共有には便利な仕組みです。但し、レコードプレースホルダを読み込む際、少し時間がかかるため、10~20個のレコードプレースホルダに値をそれぞれ読み込もうとすると数秒程度の遅延が発生します。
そのため、テーブルのデータを縦持ちにして、一つのステップに値を表示する際にレコードプレースホルダを多数読み込むようなアプリを作成するとアプリ全体の動作がもっさりしてしまい、現場では使いづらいアプリになってしまいます。
そのため、結論としては、作業時間や作業数量などを記録して後で集計・分析したい場合は、縦持ちでテーブルのフィールド項目を決めることを推奨します。一方、作業手順項目やチェック項目などをレコードプレースホルダに読み込ませる場合は、1つのステップ内で表示したい項目を横持ちでフィールド項目とすることを推奨します。
以上