私は不動産データベースを作成していますが、設計にいくつかのループがあるため、何か間違っているようです。大丈夫ですか、それともすべての DB スキーマを再設計する必要がありますか?
ここに私の現在のスキーマがあります:
私は不動産データベースを作成していますが、設計にいくつかのループがあるため、何か間違っているようです。大丈夫ですか、それともすべての DB スキーマを再設計する必要がありますか?
ここに私の現在のスキーマがあります:
データベース設計における「ループ」は問題ありません。複数の方向でデータをトラバースする必要がある場合があります。
これがアプリケーションとアプリケーションのニーズにとって適切なモデルであるかどうかは、はるかに難しい問題であり、アプリケーションとそのデータのニーズの完全な詳細なしでは答えられません。
特定の設計に立ち入ることなく、一般的に循環関係に本質的に問題はありません。いくつかの状況をモデル化するには、実際にそれらが必要になります (たとえば、「真の」1 対 1 の関係)。
トランザクションにもリンクされている中間テーブルにリンクするさまざまなテーブルにトランザクションをリンクしています。ちょっと冗長に聞こえますか?
しかし、これはモデルが言っていることです。トランザクションには TownRegion があり、その TownRegion 内には、(ルール セットに応じて) トランザクションがすべて、または一部を含む、またはまったく含まない可能性のある Areas、Districts、Streets、および Subway があります。
異なる TownRegion にある可能性があるトランザクションにリンクされたテーブルのいずれかが存在する場合、データベースを変更する必要があります。残念ながら、一部のテクノロジではスキーマを操作するのが難しい場合がありますが、いずれにせよデータを定義するのは状況です。
これは少し古い投稿ですが、これについて言及する必要があると考えました。
あなたの目標が高度に正規化されたデータベースである場合、これは私には問題ないように見えます。このデザインに間違いはないと思います。