0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

第1回 農薬データ構造設計から実装まで ~ロードマップ~

0
Last updated at Posted at 2026-04-17

こんにちは。tuyomoriです。
農家とエンジニアの二足のわらじで活動しています。
今は「農薬×農業日誌アプリ NOULOG」を開発していて、
農薬選定で毎回オーバークロックする脳内NPUを、アプリ側に肩代わりさせる のが目的です。

この記事では、NOULOG の農薬データ構造を
「設計 → JSON化 → 実装 → 利用」 の流れで整理していく様子を紹介します。

農薬データは、一般的なマスターデータとは違い、
構造が複雑で、表記揺れが多く、現場で扱いにくい という特徴があります。

この連載では、NOULOG で実際に採用する
“現場で使える農薬データ構造” を中心に、
設計思想から実装までを順番に解説していきます。

この連載で扱う内容の大まかなロードマップを第1回の内容とします。

第2回:現場の課題(農薬データの難しさ)

農薬データは

  • 項目が多い
  • 表記がバラバラ
  • 情報量が多い
  • 検索軸が多次元
  • ラベルが読みづらい
  • 農家は脳内で多次元検索している

という理由で、普通のデータベース設計では扱いづらい領域です。

現場の農家がどのように農薬を選んでいるのか、
その“脳内フロー”を具体的に紹介しながら、
農薬データの構造化がなぜ難しいのかを解説します。

第3回:NOULOG でどう整理するか(データ構造の思想)

  • NOULOG は農薬データベースではない
  • NOULOG の目的は農薬選定の意思決定支援である
  • 農薬データはそのままでは複雑すぎて使えない
  • 生データには多重ネスト構造の問題がある
  • NOULOG はネストを避けてデータを分解する方針を採用する
  • NOULOG のテーブル構造(6テーブル)を定義する
  • この構造により軽量・高速・更新容易なデータ運用が可能になる

第3回では、NOULOG が「単なる農薬データベース」ではなく、
農薬データ × 現場文脈 を組み合わせた 意思決定支援システム を目指していることを説明します。

そのために、生データの多重ネスト問題を避け、
6つのテーブルに分解した フラットなデータ構造 を採用します。
これにより、アプリ側でも扱いやすく、更新しやすい軽量なデータ運用が可能になります。

第4回:生データからCSVへの加工とJSON変換

  • 生データを4つのテーブルへ機械的に分離するロジックを作る
  • CSV を“編集・更新のための中間フォーマット”として扱う
  • CSV から JSON へ変換する実装を行う
  • データ更新の仕組みとして source_version と change_log を導入する

第4回では、生データを NOULOG のデータ構造に合わせて
CSV → JSON → DB へ変換する実装手順を解説します。
テーブル分割、CSV の役割、更新管理(source_version / change_log)など、
実際にアプリで扱える形に落とし込むための処理フローを整理します。

第5回:データ利用の検討(アプリ側の実装)

  • JSON データを Android アプリに読み込む仕組みを作る
  • データ更新を効率化するためのキャッシュ戦略を設計する
  • 作物・病害虫・成分・RAC を横断する検索・フィルタリングを実装する
  • UI とデータ構造を接続し、現場で使いやすい画面を設計する
  • 運用時の注意点(データ更新・バージョン管理・不整合対策)を整理する
  • データ拡張(作物・成分・使用回数など)に対応できる構造を検討する

次回 予告

次回は 第2回で「現場の課題(農薬データの難しさ)」 を掘り下げます。
なぜ農薬データが扱いにくいのか、現場で何が起きているのかを整理します。

第2回現場の課題(農薬データの難しさ)
https://qiita.com/tuyomori/items/28230af0b8b4adcf7f19

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?