我正在使用 SQL Server 2008。我的问题是关于关系数据库设计。我得到了以下表格和关系:
合同:我与Laborer 有1-M 关系。我们预计会有 50 万份合同。合同是两方之间的商业合同。
劳动者:每组劳动者属于一份合同。我们期待数以百万计的劳动力。
消息:预计包含数百万条记录。向合同方发送有关合同和劳工的消息。
MessageContract:Message 和 Contract 之间的桥梁表,预计有数百万条记录。
MessageLaborer:Message 和 Laborer 之间的桥接表,预计有数百万条记录。
Process : 与 Message 有 1-M 的关系。预计最终会有数十万条记录。
我的问题是除了Process和Message之间的关系之外,是否可以添加Process和MessageContract和MessageLaborer之间的关系,这样在查询正在处理的合同和劳动者时,我就不必添加与Message的join。
另一个例子:MessageLaborer 与 MessageContract 有间接关系。您可以随时查询数据库以获取每个合同消息下的劳动者,但您需要 4 个连接来执行此操作。另一种选择是在 MessageLaborer 和 MessageContract 之间创建另一个关系,因此您只需要一个联接。
这是常见的做法还是常见的错误?