1

我正在开发/设计一个小型系统来跟踪服务器、这些服务器上运行的应用程序以及每个应用程序在服务器上存在哪些环境。我有一个关于良好设计模式/实践的快速问题。

我有 3 张表,每个实体一张。它们(缩写)如下:

Server
Id : int

Application
Id : int

Environment
Id : int

现在,我的问题是:

这样创建一个连接表是否可以接受:

AppServerEnvironments
ServerId : int
ApplicationId : int
EnvironmentId : int

或者,这样创建两个连接表是否更好:

ApplicationServer
ServerId : int
ApplicationId : int

ApplicationEnvironment
ApplicationId : int
EnvironmentId : int

我尝试过使用第二个选项,但似乎无法找到正确连接所有 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

这取决于。如果您要求所有三个键都存在于连接中,那么您应该寻求AppServerEnvironments解决方案。如果该Server/Application对不需要 aEnviromentApplication/Environment不需要 a Server,那么您最好使用该ApplicationServer/ApplicationEnvironment解决方案。这样,您可以在没有NULL值的情况下在表上定义复合主键。

于 2013-07-12T14:14:48.413 回答