Modeling global and private parameters I'm trying to model a database that will be used for management and execution of SSIS packages. The entities are Client, Job and Package. A Job is the managed unit that references Client and Package. 

I need to model parameters for the Package. Some parameters are Global, common to all clients. Others pertain to a particular client. The source server, is a good example of a client parameter and target server is global to all clients. Here's the model I have so far:



Here is a scenario:

Global Parameters:


SSIS_ServerName
StagingServerName
StagingUserName 
StagingPassword
LogServerName
LogUserName
LogPassword


Client Parameters:


SourceServerName
SourceUserName
SourcePassword
SourceDatabase
StagingDatabase
BlockSize
AllotedRunTime


It doesn't seem very clean to me. Anyone have a suggestion how to better model the parameters?

It's the relationship of PackageParameter to ClientParameter and GlobalParameter I don't quite know what to do with. PackageParameter lists the names of all parameters for the package and whether they are client or global. The values for those parameters would come from either the ClientParameter or the GlobalParameter, depending on the type.
Decided to do away with GlobalParameter and use a special PackageID (0) for global parameters. Simplifies matters a great deal in both the model and the code.