1

サーバー、これらのサーバーで実行されるアプリケーション、およびサーバー上に存在する各アプリケーションの環境を追跡するための小さなシステムを開発/設計しています。優れた設計パターン/プラクティスについて簡単な質問があります。

エンティティごとに 1 つずつ、3 つのテーブルがあります。それらは次のように (省略) 表示されます。

Server
Id : int

Application
Id : int

Environment
Id : int

さて、私の質問は次のとおりです。

そのような結合テーブルを作成することは許容されますか?

AppServerEnvironments
ServerId : int
ApplicationId : int
EnvironmentId : int

または、次のように 2 つの結合テーブルを作成することをお勧めします。

ApplicationServer
ServerId : int
ApplicationId : int

ApplicationEnvironment
ApplicationId : int
EnvironmentId : int

2 番目のオプションを試してみましたが、3 つのテーブルすべてを適切に結合する方法がわかりません。

入力/ガイダンスは大歓迎です。

ありがとうございました!

4

2 に答える 2

1

したがって、次のようなものになります。

application
-----------
application_id

server
-----------
server_id

application_instance
---------------------
application_id
instance_id
name <- name this one DEV, or PROD etc.
description <-  here describe the use of the DEV system

どちらがどこに住んでいるか教えてください...

server_instance
---------------
server_id
instance_id
于 2013-07-12T14:32:27.447 に答える
0

場合によります。結合に 3 つのキーすべてが存在する必要がある場合は、AppServerEnvironmentsソリューションを選択する必要があります。Server/Applicationペアが を必要としない場合、Enviromentまたは がを必要Application/Environmentとしない場合は、ソリューションServerを使用することをお勧めしますApplicationServer/ApplicationEnvironment。このようにして、値を持たずにテーブルに複合主キーを定義できますNULL

于 2013-07-12T14:14:48.413 に答える