kintoneアプリのデータは1方向に伸ばしましょう！

# はじめに
弊社の業務として、多くの企業さんにkintoneの導入をお手伝いさせていただきますし、導入先の企業さんのスタッフの方にも積極的にkintoneアプリを作っていただく様に促したりもします。

その中で、どうも上手くkintoneアプリを作ることができない方がいらっしゃって、どうしてこのようなアプリのフィールド構成になったのかを詳しくお聞きしたりすると、**『データ構造』**というものを意識せずにkintoneアプリを作っているという事に気付きました。

kintoneは**データベース**と呼ばれる種類のシステムです。
つまり、データベース的な活用方法をするとより自然にkintoneを利用していくことができます。

逆に言うと、データベースのデータ構造に則って作っていかないと、使いづらいものになってしまいます。


**結論のイメージ図になります！**
![note用.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/602d6759-87ac-ce71-48d1-de49dcbbd974.jpeg)



# 自分たちで作れる業務ツール(システム)はExcelが中心
多くの会社では、基幹システムと呼ばれる販売管理システムや顧客管理システムなどは、パッケージ製品などが中心で、システム開発会社などに個別に有償のカスタマイズを依頼をしないといけないため、個別のカスタマイズがほぼなされていないのが実情です。

そこで目の前の業務と基幹システムの間で情報管理するためのツール(システム)として、多くの業務用パソコンに初期インストールされていて、一般社員でも作成・改修がしやすいExcelが大きな役割を担ってきました。他にも「紙」「ホワイトボード」「メール」「電話」なんかもあるでしょうが、とりあえずExcelって感じの会社は多いのではないでしょうか？

だからこそ、自分たちで作ることのできる業務ツール(システム)であるkintoneは、ある意味Excelがライバルの様な感じなんですね。
個人的には、データベースであるAccessがライバルの様な気もしますが、より一般的という意味ではExcelになっちゃいますよね…。


# 『kintoneは簡単に作れる』は、確かに正しいが…

自分たちで作ることのできる業務ツール(システム)をExcelで作っていた人は、そのイメージがあるからこそ、**そのイメージで**kintoneアプリを作っちゃうんですよね。
冒頭で書いた**「どうも上手くkintoneアプリを作ることができない方」**は、この**「Excelのイメージでkintoneアプリを作ってしまっている方」**であることが多いようです。

webサイトにも「ExcelやCSVを読み込めば簡単にアプリを作れますよ」と書いてあり、それなりの構造のExcelやCSVファイルであれば、kintoneアプリがサクッと作れてしまうことも、データ構造を意識しないkintoneアプリ作成者が出てきている要因なのかとも思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/7a7ac4de-baa6-2b60-c7c8-1850451894eb.png)
【参照】https://kintone.cybozu.co.jp/feature/basic.html


# データ構造に着目したExcelとkintoneの違い
## Excelからkintoneアプリを作ってみる
### まずはやってみる
[新規アポ件数管理表_取込用.xlsx](https://github.com/AISIC-DL/downloads/blob/master/etc/%E6%96%B0%E8%A6%8F%E3%82%A2%E3%83%9D%E4%BB%B6%E6%95%B0%E7%AE%A1%E7%90%86%E8%A1%A8_%E5%8F%96%E8%BE%BC%E7%94%A8.xlsx)
![2021-01-15_03h16_14.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/7a03822d-8c88-6794-93b6-662bb6850d2d.gif)
こんな感じのExcelをkintoneに取り込んでみると下記の様な感じになります。
![2021-01-15_02h43_33.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/c93adfa1-7a10-1414-1f5a-3a7814c7f785.gif)
パッと見は「無事に取り込めた！」「一覧画面では、Excelと同じように見えていい感じ！」となっているかと思います。

### 来年になったり、人が増えたり減ったりしたらどうしますか？？
Excelであれば、2020年12月の右側に2021年分の列を追加するだろうし、人の増減に対応するためには、行を追加・削除したりしますよね。

では、kintoneだとどうなるでしょうか？？
2021年分の入力項目を増やすためには、2021年1月～2021年12月分のフィールドを追加して、人の増減に対しては、レコードの追加・削除をする感じになります。

同じように見えるかもしれませんが、kintone的には、アプリを更新する(アプリの構造を変える)という、とてもインパクトの大きな改修をすることになります。
これは、年が増える度に、12フィールドずつ増えていくという事ですし、数年間運用していくと、なんとなくヤバそうなのは想像つきますよね…。

## では、どういうデータ構造だといいのでしょう？？
kintoneにてデータを管理したいのですから、冒頭に書いた通り『データベース』的な考え方に則ったExcelにすればいいわけです。つまり、1方向に伸びるデータ構造に変更すればいいのです。

### やってみましょう
[新規アポ件数管理表_正規化版_取込用.xlsx](https://github.com/AISIC-DL/downloads/blob/master/etc/%E6%96%B0%E8%A6%8F%E3%82%A2%E3%83%9D%E4%BB%B6%E6%95%B0%E7%AE%A1%E7%90%86%E8%A1%A8_%E6%AD%A3%E8%A6%8F%E5%8C%96%E7%89%88_%E5%8F%96%E8%BE%BC%E7%94%A8.xlsx)
![2021-01-15_03h14_43.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/ee3eae06-9e04-f43f-c704-c406bd3b3925.gif)
こんな感じのExcelをkintoneに取り込んでみると下記の様な感じになります。![2021-01-15_03h20_09.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/0db76faa-9150-57fd-a59c-7941ff5fe8dd.gif)
無事に取り込めましたが、年月が横に並んだExcelとは見た目は異なりましたね。


### 来年になったり、人が増えたり減ったりしたらどうなるでしょう？？
Excelにしてもkintoneにしても、列を増やすとかフィールドを増やすなどの構造の変化をすることなく、行を増やすということでデータを追加できているという事がお分かりいただけるかと思います。

こうすることで、Excelの列を増やしたり、kintoneのアプリの構造を変えることなく、データを登録し続けていくことができるようになります。つまり1方向のみにデータが伸びて行くという事ですね。

## データの伸びる方向について
### Excelの特徴
1つのシートだけでもデータは2方向に伸びますが、Excelファイルの構成＆フォルダ管理方法によっては5方向以上になることもあります。
![2021-01-15_01h39_58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/d54952a6-57b5-dae7-3508-607d5fbf4c48.png)

### kintoneの特徴
データは1方向にのみ伸びていきます。
![2021-01-15_01h58_58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/59f850dc-14a9-8c3c-3d78-036aa7c3ab70.png)


## 入力と表示について
**Excelはデータの入力と表示が同時に行われる**が、**kintone(データベース)はデータの入力と表示は別である**というポイントを押さえておく必要があります。

こう書くと、kintone(データベース)の方が機能が劣っている様に見えるかもしれませんが、データの保管・取出しを高速かつ安全に行うために生み出された仕組みであり、データを取り扱う専用ツールという観点で見れば、データベースに軍配が上がります。
とはいえ、そもそもの成り立ちや使われ方も全く違うので、比較できないといえばできないのですが＾＾；


## 違いのまとめ
| Excel | kintone |
|:-----------|:------------|
| データの伸びる方向が**2方向以上** | データの伸びる方向は**1方向** |
| データの入力と表示を**同時**に行う | データの入力と表示は**別**と考える |




# まとめ
データベースであるkintoneにアプリを作るという事は、データベースとしての特性に則った作りにしていくことが肝要です。なので、Excelの延長線上にkintoneがあるという考えではなく、kintoneはExcelとは別のベクトル上にある考え方でデータを管理しているのだという事をしっかりと認識しておいていただくことがとても重要な事です。

これは、kintoneでアプリを作る時にとても基礎的な考え方になります。
自分や会社のメンバーが作ったkintoneアプリが、データが増える事に伴って、フィールドの追加をしないといけない状況になるようであれば、データベースの原則に則っていないという事になりますから、アプリの構成を見直していただければと思います。

自社内に作っているkintoneアプリの手直ししたいとか、どのように作っていけばよいかアドバイスが欲しいということであれば、弊社サービスでサポートできますので、お気軽にご相談くださいませ。
[<img width="300" alt="2020-11-11_11h00_00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/3dd897b5-4e24-af0e-23fa-fee0cc2c1b09.png">](https://www.rescutone.com/) [<img width="300" alt="2020-11-11_11h00_13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/c76df839-ac18-95b5-e57f-baeccf911e27.png">](https://www.renovatone.com/)


# 最後に
そう言えば、学生時代に「データ構造とアルゴリズム」という講義があったなぁ。当時は全く意味も分からず、興味も持ててなかったのに、自分でこういうテーマで書くことになるとは。人生分からんもんですな(笑)

アルゴリズムと言えば、プログラミングの講師もしておりまして、各種の言語やフレームワークも教えますが、「良いアルゴリズムを身に付ける」事に重点を置いた『思考力を鍛える』講義も行っております。未経験ながらSIerに入社が決まってしまった様な方や、プログラミングに挫折した方は是非お声掛けくださいませ！