本文へスキップ
  1. TOP
  2. Web制作
  3. 実務知識
  4. CSVで一括登録・更新するとき、既存データをどう守るか

03 / BUILD

つくるフェーズの実務知識

CSVで一括登録・更新するとき、既存データをどう守るか

更新・削除・空欄・重複・文字コードまで、一括処理の前後を確認する

CSVの一括更新結果と既存データへの影響を確認する資料

PRACTICAL KNOWLEDGE 実務知識

WRITTEN BY

FHW制作チーム

反省会と日々の制作記録をもとに、担当スタッフが実際に迷い、確認し、判断した過程を整理しています。

CSVは大量の情報をまとめて扱える一方、一行の誤りが多数の公開データへ影響します。新規登録だけでなく、既存データの更新、公開状態の変更、関連情報の追加を行う場合、どの値を正として上書きするかを決めなければなりません。

処理が「正常終了」と表示されても、意図したデータが登録されたとは限りません。文字化け、列ずれ、重複、空欄による上書き、関連付けの解除など、画面を数件見ただけでは分からない問題があります。

私たちがCSV機能で怖いと感じるのは、エラーで止まることよりも、正常終了したまま意図しない更新が広がることです。そのため、入力形式だけでなく、更新規則、事前検証、結果確認、復旧までを一つの仕組みとして設計します。

最初に、新規登録と更新を見分けるキーを決める

同じ名称の商品や同姓同名の利用者が存在するため、名前だけで既存データを判断してはいけません。システム内ID、外部システムの管理番号、変更されないコードなど、一件を識別できるキーを決めます。

キーがない行は新規登録するのか、エラーにするのかを明確にします。どの列で同一性を判断したかを処理結果に残すと、意図しない重複や上書きを追いやすくなります。

空欄を「削除」と「変更なし」に分ける

CSVの空欄には、値を消したい場合と、その項目を変更したくない場合があります。この二つを区別しないと、部分更新のつもりで既存情報を消してしまいます。

更新CSVでは、空欄なら変更しない、明示的な削除値がある場合だけ消す、といった規則を決めます。画像、PDF、カテゴリ、公開期間など、空欄の意味が列によって異なる場合は、項目定義へ記載します。

列名・型・選択肢を公開画面と対応させる

管理画面では「公開中」と表示されても、CSVでは数値や内部コードを求める場合があります。日付、数値、真偽値、カテゴリ、複数選択、改行、URLなど、列ごとに受け入れる形式を決めます。

画面上の項目名、CSVの列名、保存される値、公開画面の表示を対応させます。利用者へ渡す雛形には、列名だけでなく、代表データと入力例を含めます。

本登録の前に、結果を確認できるようにする

大量更新を実行する前に、ファイル全体の形式と各行の内容を検証します。登録予定、更新予定、変更なし、エラーの件数を分け、どの行がどの理由で処理されるかを確認できる状態にします。

可能であれば実際には保存しない事前確認を用意します。少なくとも、本番データの複製や検証環境で代表CSVを実行し、変更される項目と変更前後の値を確認します。

一行のエラーで、どこまで処理するかを決める

途中の一行でエラーが起きたとき、それ以前の行だけ保存されると、ファイルの一部だけ反映された状態になります。全件を一つの処理として戻すのか、正常行だけ登録しエラー行を再提出するのかを、業務に合わせて決めます。

正常行だけ進める場合は、成功・失敗・未処理を識別できる結果ファイルやログを残します。同じCSVを再実行したときに重複登録されないことも重要です。

関連データと削除済みデータを守る

一件の商品に画像、資料、カテゴリ、履歴などが紐づく場合、基本情報の更新だけで関連データを消してはいけません。CSVに含まれない関連情報は保持するのか、CSVを完全な正として置き換えるのかを決めます。

CSVに行が存在しないことを削除指示とみなすと、ファイルの出力漏れで大量削除が起きます。削除や非公開は専用列または別工程とし、対象件数を確認してから実行します。

取込後は、画面と業務の両方を確認する

処理件数が一致した後、一覧、詳細、検索、公開状態、画像や資料、通知など、データが使われる場所を確認します。新規、更新、空欄、複数カテゴリ、長文、特殊文字など、条件の異なる代表データを選びます。

外部システムから定期的にCSVが届く場合は、前回との差分件数、処理時刻、失敗通知、再実行方法を運用へ含めます。自動取込でも、担当者が処理結果を確認できなければ安全な運用にはなりません。

バックアップは、戻せることまで確認する

一括更新前には対象データをバックアップします。ただし、ファイルがあるだけでは復旧できるとは限りません。どの時点へ戻すのか、関連データも戻るのか、更新後に入った別の変更をどう扱うのかを確認します。

全体復元が難しい場合は、変更前後の値を履歴として残し、対象行だけ戻せる方法も検討します。復旧手順と実行権限を決め、本番で初めて試す状態を避けます。

この方法が向いているケース

  • 商品、物件、求人、会員などを大量登録する
  • 外部システムから定期的にデータを受け取る
  • 既存データを一括で更新する
  • 複数担当者が同じCSV雛形を使う
  • 一覧、詳細、検索など複数画面で同じデータを利用する

CSV以外を選ぶべきケース

リアルタイム性が必要な情報、複雑な関連付け、頻繁な双方向更新にはAPI連携が適する場合があります。少量で確認判断が多い更新は、管理画面から一件ずつ操作した方が安全です。

CSVが使えることを目的にせず、更新頻度、件数、確認責任、失敗時の復旧から方法を選びます。

一括更新チェック

  • 一件を識別する不変のキーがあるか
  • 空欄の意味を項目ごとに決めたか
  • 列名、型、選択肢、保存値を定義したか
  • 登録、更新、変更なし、エラーを事前に確認できるか
  • 部分失敗と再実行の規則を決めたか
  • 関連データと削除済みデータの扱いを決めたか
  • 取込件数と代表画面を照合したか
  • バックアップから戻す手順を確認したか

PRACTICAL KNOWLEDGE 同じフェーズの実務知識

私たちが別の制作で得た判断や確認方法を、同じ制作フェーズからご覧いただけます。

複数社でWeb制作の引き継ぎ内容を確認する作業デスク

自社で公開できないWeb制作で、入稿・納品・確認の責任範囲をどう決めるか

外部CMSや別会社の環境へ入稿・納品する制作で、利用できる技術、確認段階、修正の戻し先、完了条件をどう決めるか整理します。

支給デザインを共通ルールと例外へ分けて確認する制作チーム

支給デザインを、共通ルール・例外・動作仕様へどう変換するか

Figma、画像、印刷物、参考サイトなどの支給物から、共通部品、例外、可変条件、レスポンシブ、動作仕様を整理し、複数人で再現できる実装ルールへ変換する方法をご紹介します。

急増したAPI利用料金の請求明細とグラフを確認する制作チーム

55万円請求を生んだ、公開ページと従量課金APIを直結する落とし穴

公開ページへの機械的な大量アクセスが従量課金APIの大量実行へ増幅され、約55万円の請求に至った経験から、外部APIの費用上限、クォータ、キャッシュ、監視の設計を整理します。

公開日時と素材の進行状況を確認するWeb制作の作業デスク

公開日を動かせないWeb制作で、未確定素材・版管理・日時公開をどう管理するか

公開日時が固定された制作で、後から届く素材、複数の版、日時指定公開、公開直前の変更を安全に管理する方法をご紹介します。

Web制作中に増えた要望と工程への影響を整理する制作チーム

その追加要望、今入れますか? Web制作中の変更をどう判断するか

Web制作中に増えた要望を、目的、合意範囲、影響する工程、費用、日程、公開時期から確認し、修正・追加対応・公開後対応へ整理する方法をご紹介します。

短納期の制作で公開条件と後工程をカードに分ける制作チーム

短納期のWeb制作で、削ってよい工程・削ってはいけない確認は何か

短い制作期間で、共通ルール、未確定素材、確認範囲、公開後へ送る改善を整理し、速さのために品質判断まで省略しない進め方をまとめます。

受付窓口で申込書と処理の流れを確認する担当者と利用者

紙・PDFで続けてきた申込・注文業務を、どうWebへ移すか

紙やPDFで行ってきた申込・注文業務をWeb化するとき、利用者の操作、受付側の確認、例外処理、計算、保存、外部連携までを一続きで設計する方法を整理します。

公共空間でスマートフォン、タブレット、ノートPCを使う人々

対応端末・ブラウザは、利用場面からどう決めるか

Web制作の対応端末とブラウザを、利用者、場所、主な操作、重要度から優先・代表・簡易確認へ分け、境界の内容と再現情報を確認する方法を整理します。

Webフォームの入力から通知までを検証する作業デスク

フォームの送信確認で、通知・自動返信・保存データ・担当振り分けまでどう検証するか

Webフォームについて、入力・確認・送信だけでなく、管理者通知、自動返信、保存データ、担当振り分け、本番環境でのメール到達までを一続きで検証する方法を整理します。

更新担当者と制作会社がページテンプレートの編集範囲を確認する作業台

お客さまもHTML・CSSを更新するサイトで、編集範囲をどう設計するか

お客さまがHTML・CSSを直接更新するWebサイトで、編集できる範囲、共通部品、CSSの影響範囲、変更履歴、制作会社へ相談する条件をどう決めるか整理します。

会員の登録状態と役割ごとの権限、外部連携を整理した立体模型

会員サイトで、登録状態・役割・権限・外部連携をどう設計するか

会員サイトの登録途中を含む状態、役割ごとの操作権限、外部サービスとの状態差、機能を段階公開する場合の判断方法を整理します。

少量のサンプルから本番規模の多様なコンテンツへ広げて検証する模型

少量のサンプルで動くWebサイトを、本番規模でも崩さないために何を試すか

数件のきれいなデータだけでは見つからない、最大件数、長文、画像量、空欄、ページ送り、一括処理の問題を公開前に確かめる方法を整理します。

原稿から複数言語のページと公開状態へ展開する編集工程

多言語サイトで、翻訳原稿・共通部品・段階公開をどう同期するか

多言語サイト制作で、ページと言語の対応、翻訳原稿の状態、共通部品の文字量差、言語ごとの段階公開を安全に管理する方法を整理します。

共通基盤でつながりながら役割を分けた複数サイトの建築模型

複数サイト・複数部署で、共通部分と運用範囲をどう分けるか

複数サイトや複数部署で運用するとき、共通化する見た目・情報・仕組み、権限、公開日、正となる情報源をどう分けるかを整理します。

光と布の動きが段階的に変化する展示空間

動きのあるデザインを、雰囲気ではなく実装仕様へどう変えるか

参考サイトやデザインの動きを、開始条件、時間、順番、終了状態、読み込み、端末ごとの代替表現へ分解し、安全に実装する方法を整理します。