![見出し画像](https://assets.st-note.com/production/uploads/images/73003762/rectangle_large_type_2_1dbc24b6fcaea800f4ad0ccf21d75dbd.png?width=1200)
商品データにおける主キー運用の難しさと対処法を解説します
皆さん、こんにちは。高速検索の会社、フォルシア株式会社でMasstery部に所属しています。エンジニアの伊藤です。
以下の記事で、データに主キーを設定するメリットを、ご紹介しました。
→こちらの記事では、一般的な主キーの意義についてやさしく解説しました。
→こちらの記事では、「商品データ管理」の場合を例にとって、データに適切に主キーを設定することで、データ管理さらにはそのデータの上に成り立つ業務が円滑に運用できることをご紹介しました。
しかし、現実のデータにおいて、主キーを設定し運用していくのは簡単なことではありません。
今回もまた「商品データ管理」を例に、実際の主キー運用の難しさと、その対処方法についてご紹介します。
商品データにおける主キー運用の難しさ
自社では、下記のような商品データを管理しているとします。
このデータでは主キーが設定されていますが、実はこの主キーが「主キーとして機能する」状態を維持していくのは難しいことなのです。
![](https://assets.st-note.com/img/1645762435395-EgpWPNSQpU.png?width=1200)
1.表記ゆれにより、同じ商品があたかも別商品に
たとえば1行目の商品、BメーカーのエタノールXX-ETH 100mLですが、同じ商品が別の仕入先からは、「0.1L」「100ml」「100mL入り」「100(mL)」といった表記の商品データが届く可能性があります。同じ仕入先でも、あるときから表記を変更するという可能性もあります。
これらは、意味としては同じものですが、表記上は別物ですから、そのまま自社のデータとして使ってしまうと、意味としては同じ「BメーカーのエタノールXX-ETH 100mL」のレコードが表記をかえて複数できあがります。これでは、主キーを設定しているはずなのに、レコードと商品が1対1対応しません。
これを避けるためには、「自社のデータでは、容量・入数が容積のときは、mL単位で表現し、単位もデータに含めて記載する」とルールを決めて管理する必要があります。
逆に主キーを設定していても、その値の表現がただ1通りに定まるようにルールを決めていないと、いつしか主キーがその役割を果たさなくなってしまうことがある、ということです。
2.商品の販売単位ごとに表記ルールが必要になる
ルールを決めて管理しましょうと書きましたが、これは取り扱い商品が多様だと簡単なことではありません。L(リットル)単位だけならシンプルですが、世の中には「g(グラム)」「個」「本」など、様々な単位の商品が存在します。
難しいのはセット品で、「1袋12本入り」のときは、「容量・入数」項目にどのように表記したらよいでしょうか・・・。
といった具合に、たくさんの表記ルールが必要になります。
機械的なルールではカバーしきれない表記パターンもありますし、かといって人が判定しても手間がかかりますし、判定者によって違う表記になる可能性もあります。
とくに数百万点規模の商品を扱うような場合には、「ルールを決める」だけでも大変なことなのです。
3.仕入先ごとに商品データ構造が異なりそれぞれ変換が必要
表記ゆれだけであればまだ簡単で、そもそもデータの構造(主キー)が異なるということもあります。
たとえば、上記のA商事の商品データの構造は、自社とほぼ同じ形式の商品データを受領できればラッキーですが、以下のような構造で受領する可能性もあります。
![](https://assets.st-note.com/img/1645762458222-HdQ4C4Wtlc.png?width=1200)
適切な主キー運用のために
それでも主キーを諦めないで
以上、実際に主キーが主キーとして機能するよう運用する難しさをご説明してきました。ここまでの話をきいて、こんなに大変なら主キーなんて設定したくないと思った方もいらっしゃるかもしれません。
しかし、ここで私がお伝えしたいことは、それでも主キーの設定と運用を諦めないで・・・!!ということです。
前回の記事でご紹介したとおり、主キーを設定しないとその先はさらに修羅の道です。諦めたところで、自社の業務システムに取り込んだ後で、主キー管理されていないデータとの戦いをせざるを得なくなります。同一商品が複数レコードに分かれて登録されてしまったならば、混乱をきたした末に、結局は統合・削除するという運用がついて回ります(そうしないと他の人もまた同じレコードにつまずくためです)。
振り回されてから統合・削除するよりは、自社の業務システムに取り込む手前でシャットアウトするのが最も効率的なのです。
主キー運用のステップ
運用のステップは、上述のとおりですが、まとめると以下のようになります。
データの管理ルールを決める
a.主キーを決める
b.主キーの値を表現するルールを決めるルールに従って、受領データのフォーマットを自社データのフォーマットに変換する
変換したデータを自社の業務システムに取り込む
Massteryなら
> 2. ルールに従って、受領データのフォーマットを、自社データのフォーマットに変換する
データクレンジングツールMassteryを利用すると、この作業を自動化することができます。
Massteryで1度設定して作業を自動化すれば、作業時間を短縮するとともに、属人化や作業者ごとの差異を防ぐことができます。
また、種々の表記ルールは誰でもわかる形で一箇所にまとめておくことができるので、決めたデータの管理ルールを一元化・可視化して、客観的に管理することにも役立ちます。
他にも、Massteryにはデータ整備に便利な機能がたくさん揃っていますので、ぜひご覧ください。
さいごに
現実の商品データにおける主キー運用の難しさと、その課題にMassteryが役立つことをお話してきました。
データの主キーが適切に設定・運用された状態を維持することは、決して簡単なことではありませんが、本記事を通じて、少しでも興味を持っていただけたなら幸いです。
Masstery部では、データの整備・運用に関するご相談も受け付けています。主キーをどのように設定したらよいか、データ整備に人手がかかっている等、些細なことでも構いませんので、お困りのことがあればぜひお気軽にご相談ください。
私達がご提供している製品「Masstery(マスタリー)」は、 多くの人手が必要だったデータ整備を自動化する画期的なデータクレンジングツールです。フォーマットの統一、カテゴリーの自動分類、独自の変換、差分情報の取得等、データ整備に必要なあらゆる機能をご提供しています。
Masstery 公式サイト:https://mstr.forcia.com/(データクレンジング)
フォルシア株式会社 企業サイト:https://www.forcia.com/ (高速検索)
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?