Webアプリケーションのさまざまなタイプの階層データにさまざまな種類のエンティティをマップする機能が必要です。一例として、ベンダと呼ばれるエンティティを考えます。ベンダーの各インスタンスを地理的エリアにマッピングする能力が必要です。地理的エリアは次の階層にあります。階層データを格納するための可能なオプション
- 郵便番号 - 最も細かい地域です。例、EC2
- 地域 - ポストコードで形成されています。例、ケンジントンそれぞれのポストコードは正確に1つの地域の一部になります。
- 町は地方で構成されています。ロンドンの例。それぞれの地域はちょうど1つの町の一部になります。
- 地区 - 町から成っています。例、コロンビア。
- 州 - 州によって構成されます(一部の国では州に相当)。例えば、サウスカロライナ州。
- 地域 - 地方で構成されています。例えば、東北地方。
- 国 - 地域で構成されます。
- ゾーン - 国で構成されます。東南アジアの例。
- 大陸 - ゾーンで形成されます。
私たちは、郵便番号、地方、町、地区、地方、地域、国、ゾーン、大陸の完全なデータベースを持っています。これは現在、RDBMSのテーブルとして存在します。
当社の使用事例:任意のレベルで、複数の地域でベンダーを関連付ける
- 能力。例えば、我々は本土ヨーロッパ(ゾーン)、カリフォルニア(米国の州)とグレーターロンドン(UKで地区)にネスレをマッピングすることができます。
- マッピングから地理の一部を除外する能力。たとえば、Nestleをカリフォルニアにマッピングする場合、サンディエゴを除外したい場合があります。
- 地理の構成が変更された場合、その地理が一部であるマッピングに変更を加える必要はありません。たとえば、グレーターロンドンに郵便番号が追加された場合、Nestleのマッピングに変更を加える必要はありません。
- ベンダーと地理レベルのデータベースを照会する能力。我々はネスレとポストコード用のデータベースを照会場合たとえば、私たちはと本土ヨーロッパグレーターロンドン、カリフォルニア(サンディエゴマイナスポストコード)のためのすべてのPOSTコードを取得する必要があります。我々はネスレと国をデータベースに照会した場合、当社は、米国と本土ヨーロッパのすべての国(グレーターロンドンのために国)英国を取得する必要があります。
多くの異なるタイプの階層データを持つマッピングが多数ありますが、これは要件の1つに過ぎません。
階層データとマッピングの保存に関する提案を探しています。 RDBMSを使ってオプションを認識しているので、データとマッピングをRDBMSテーブルに格納することを含む回答は投稿しないでください。
データベースソリューションを探していない場合は、この質問にdatabase-designというタグを付ける必要がありますか? –
私はRDBMSベースのソリューションを探していません。 Neo4j、RedisなどのNoSQLデータベースや階層データベースを含む他のデータベースソリューションがあります。 – manish
十分に公正な:-) –