私は漫画本のデータベースプロジェクトに取り組んでおり、特定の漫画の問題にさまざまな場所を含めることができる必要があります。私が取り組まなければならないいくつかの問題があります:
- 場所は他の場所の中にあることが多いです(「デイリーバグルビル」は「39番街と2番街の角」にあり、「ニューヨーク市」は「ニューヨーク」にあります)。
- 場所の階層はかなり標準的ですが(Universe-> Dimension-> Galaxy-> System-> Planet-> Continent-> Country-> State-> City-> Street-> Building-> Room)、すべての親の場所ではありません必然的にすべての場所で知られています(たとえば、コミックには、アフリカの名前のない国の名前の付いた建物が含まれる場合があります)。
- その素敵な階層に収まらないが、ある時点で分岐する場所がいくつかあります(たとえば、「サヴェッジランド」は南極の巨大なジャングルであるため、その親は大陸ですが、国ではありません) 。
私の主な目標は、任意の場所の検索を実行し、その場所またはその場所内の任意の場所にあるすべての問題を取得できるようにすることです。2番目の目標は、アプリケーションの管理側で完全な場所をオートコンプリートできるようにすることです(つまり、問題について新しい建物を入力し、それがニューヨーク市にあることを指定すると、すべての「ニューヨーク市」がプルされます。 "インスタンス-はい、データベースに複数の:P-があり、Earth-616またはEarth-1610にあるものを選択できます。または、別の親の場所に新しいニューヨーク市を追加することもできます) 。私ができるすべてのフロントエンドのことと、時が来たときに理解することは、現時点でデータベースのセットアップがわからないだけです。
どんな助けでもいただければ幸いです!
アップデート:
数人の仲間との多くのブレインストーミングの後、私は提案されたネストされたモデルよりも少し単純な解決策を思いついたと思います。
ロケーションテーブルは次のようになります。
- ID
- 名前
- タイプ(「その他」オプションを含む、前述のカテゴリの列挙型リスト)
- Uni_ID(親ユニバースのID、該当しない場合はnull)
- Dim_ID(親ディメンションのID、該当しない場合はnull)
- Gal_ID(親GalaxyのID、該当しない場合はnull)
...すべてのカテゴリでなど...
- Bui_ID(親ビルのID、該当しない場合はnull)
したがって、フィールドはたくさんありますが、検索とオートコンプリートは非常に簡単に機能します。任意の場所のすべての親がその行にあり、任意の場所のすべての子を1つのクエリで見つけることができます。新しい場所にタイプが定義されるとすぐに、オートコンプリートが簡単に機能します。この時点では、私が見たことのないこの設定の問題を誰かが指摘できない限り、ネストされたモデルではなく、このアプローチに傾倒しています。