2

私は開発中のアプリケーションのデータ モデルを作成している最中で、モデルの一部についてフィードバックを得たいと思っていました。このアプリは、Lotus Notes で作成されたものを完全に再開発したものであり、再開発の主な目的の 1 つは、リレーショナル データ ストレージ レイヤーに移行することです。

アプリケーションは、管理に重点を置いていThingsます。アプリケーションの要件/制約は次のとおりです。

  1. Thingには が関連付けられている必要がありますLocation
  2. ALocationは、たとえば、「McDonalds」または「Melbourne Uni, Building AK, Room 301」で、「Melbourne Uni」、「Building AK」、および「Room 301」は個別に関連してLocationsいます。
  3. (少なくとも) 3 つのレベル/層がLocation存在する必要があります
  4. ユーザーがデータベースに存在しない場所に自由にテキストを入力できるように、「その他」の場所を提供する必要があります。

したがって、上記の4つの異なる実装を考え出しましたが、どれが最も正しいかを知るのに十分なDBAの経験がありません.

場所/モノのリレーショナル モデル

これに関する考えや提案は大歓迎です!

4

1 に答える 1

0

3 つのレベルの見積もりが不十分であることが判明した場合、どちらのオプション 1 も柔軟性がなく、修正が困難であることが判明する可能性があります。

オプション 2 で、疑わしいと思われるエンティティは ThingOtherLocations です。(その名前から) 2 つの異なる概念を連結しているものはすべて、自動的に疑わしいものです。ここに 2 つの別個の概念がある場合、オプション 2b の構造には、OtherLocation も ThingOtherLocation も必要ありません。あなたが表現しようとしている関係(名前の由来)は、実際には場所間の別の関係であると思われますが、これについては明確ではありません。

編集

ThingOtherLocations の明確化に照らして、Other に関連付けられたテキストを単に新しい場所として扱い、新しい場所を他の場所と共に保存することをお勧めします。これらの場合に特別なデータベース処理を含める理由はないようです。

編集

子の位置の問題に対処するには、入れ子になったセットに関する Joe Celko の研究を検討することをお勧めします。これに関する主なリファレンスは次のとおりです。

Joe Celko.     
Joe Celko's Trees and Hierarchies in SQL for Smarties, 
(The Morgan Kaufmann Series in Data Management Systems)
ISBN 1-55860-920-2
于 2013-01-18T05:37:39.423 に答える