> For the complete documentation index, see [llms.txt](https://livlog-llc.gitbook.io/engineering-handbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://livlog-llc.gitbook.io/engineering-handbook/di-er-bu-ji-shu-ling-yu/13-data.md).

# 13. データ

リブログのプロダクトでは、会話、作業記録、記事、地名、道、駅、木材、季語、山、湧き水、写真、日付、位置情報など、多様なデータが中心的な役割を持ちます。

RDBだけを前提にせず、MongoDB、公開・再利用しやすいファイル、外部API、写真サービスもデータ基盤の一部として扱います。

## データ活用の考え方

* 出典、取得日、利用条件を確認する
* 加工・補正・削除した内容を記録する
* 検索、地図、記事、AIなど複数の用途で再利用できる形にする
* 更新方法と最終更新日を把握する
* 保存形式と公開形式を必要に応じて分ける
* 個人情報、秘密情報、位置情報の公開範囲を確認する

## RDB

MariaDBまたはMySQLを、ユーザー状態、会話・作業記録、記事、地点、木材、旅程、検索・集計などの構造化データに利用します。

DBアクセスには、ActiveObjects、SQL2o、Doma、JDBCなどをプロダクトごとに使い分けています。データを変更するときは、既存スキーマ、制約、文字コード、タイムゾーン、移行手順を確認します。

既存SQLの取得・更新条件や計算を設計書へ整理する場合は、[SQL解析・設計書作成プロンプト](/engineering-handbook/fu-lu/34-sql-analysis-prompt.md)を使います。SQLとスキーマの根拠を確認し、業務上の意味や未確定の関係は要確認事項として残します。

## ドキュメントDB

CotoGotoとMATATAVIではMongoDBを利用し、CotoGotoではMorphiaも利用しています。

RDBとMongoDBを併用するプロダクトでは、どちらを正とするか、データの同期や削除をどの処理が担当するかを明確にします。

## ファイル形式

静的サイト、データ交換、バッチ入力、設定、記事には、次の形式を利用します。

* JSON
* GeoJSON
* CSV
* YAML
* Markdown
* KML
* 画像ファイル / WebP

ファイルには、可能な範囲で生成元、生成手順、文字コード、項目定義、座標系、更新日を記録します。

## 位置情報・オープンデータ

地図系のプロダクトでは、緯度経度、地点名、住所、説明文、写真、ルートなどを扱います。国土数値情報や自治体オープンデータ、交通・駅・位置情報APIなども利用します。

GeoJSONは、Leafletなどでの地図表示とデータ再利用の両方に利用します。データ取得元の座標系が異なる場合は変換方法を記録し、地点の重複、欠損、精度も確認します。

オープンデータを利用する場合は、次を残します。

* 提供元と原典URL
* 取得日と対象バージョン
* 加工・結合・補正した項目
* 利用条件と表示が必要なクレジット
* 更新方法と再生成手順

## 写真・メディアデータ

写真は、Flickr、PhotoPrism、Amazon S3などから取得・保存し、画像本体に加えて次のメタデータを扱います。

* タイトル、説明、代替テキスト
* 撮影日時
* 緯度経度
* 出典、作者、利用条件
* サムネイルと画像サイズ

外部サービスのIDやURLだけを保存する場合は、削除や非公開化によって参照できなくなる可能性を考慮します。

## AI生成データ

AIで文章、画像、分類、説明文を生成する場合は、生成結果をそのまま正解として扱いません。

* 生成に使った入力と参照データを追跡できるようにする
* 必要な項目を構造化し、保存前に検証する
* 事実確認と人間による確認の要否を決める
* AI生成であることの表示が必要か確認する
* 著作権、個人情報、利用条件を確認する
* 再生成時に既存データを上書きするか決める

## 今後の課題

* データ出典と更新日の一覧整備
* DBスキーマとデータモデルの可視化
* GeoJSON、CSV、画像メタデータの管理ルール整理
* 複数プロダクトで再利用するデータの責任範囲整理
* AI生成データの検証、履歴、再生成ルール整備
* バックアップと削除手順の明確化
