私は注文番号と注文情報を保持するデータベースに取り組んできました。以前は、注文したアイテムごとに注文IDと一意のアイテムIDを提供するレポートを使用していました。アイテムIDは一意に割り当てられた値であるため、主キーでした。
つまり、1つの注文番号に複数のアイテムが含まれる可能性があり、各アイテムは一意のアイテムIDで識別されます。
現在、要件はよりリアルタイムになるように変更されています。つまり、一意のアイテムIDを提供するレポートは実行されていません。そのため、独自のアイテムIDを生成する必要がありますが、同じ注文番号内でのみ生成されます。
AmazonのMWSを使用する人のための追加情報:
以前は、Reports APIを使用して_GET_AMAZON_FULFILLED_SHIPMENTS_DATA_を生成し、フルフィルメントデータを提供していましたが、サードパーティの統合会社が_GET_FLAT_FILE_ORDER_REPORT_DATA_レポートを取得して、マーチャントのフルフィルメント注文を処理していました。現在、Orders APIを使用して、マーチャントがリアルタイムで注文を処理できるようにすることを検討しています。このAPIは、残念ながら、_GET_FLAT_FILE_ORDER_REPORT_DATA_ファイルによって提供されるorderItemIdを提供しません。私が解決する必要のある問題は、そのフィールドがないことに関連しています。
使用するサンプルデータは次のとおりです。
Order-ID Item-ID Item
222-2212 1 redShirt
222-2216 1 redShirt
222-2212 2 blueShirt
222-2212 3 greenShirt
222-2218 1 noShirt
私は次のようなことができるようになりたいです:
SELECT * from order_data WHERE Order-ID like '222-2212';
3つすべてのアイテムを返品します。私が抱えている問題は、Order-IDのカウントに基づいて一意の自動インクリメント番号を提供する方法がわからないことです。また、すべてのデータで標準の自動インクリメント値を使用することは避けたいと思います。これは、注文が重複する可能性があり、DISTINCTを使用してフィルタリングを試みる必要があるためです。
誰かが私がこれを達成する方法について何かアイデア、指針、または提案を持っていますか?私にはデータベース全体を最初から再設計する余裕があるので、提案を受け入れることができます。
- 編集 -
私は現在Amazonにフォローアップして、ordersAPIによって返されるorderItemIdがランダムに生成されるかどうかを判断しています。詳細がわかり次第、こちらに掲載します。