I want to split the development of our data warehouse solution in to manageable Visual Studio projects that can be edited independently and grow organically. I have developed a project that contains all the conformed dimensions like Date in one solution. Can I reference my Date dimension from a different solution where I need to include a foreign key? I have tried to reference the dacpac containing the conformed dimension but this does not work as expected.
答案 0 :(得分:0)
过去,我在单个解决方案中使用单独的项目来管理这些情况。显然,主要目标是避免开发人员之间的合并冲突,这种安排唯一应该发生的地方是解决方案文件,这应该是非常罕见的。
这里有几件事需要注意:
也就是说,也可以为引用的dacpac而不是数据库项目创建外键。再次参考需要在事实方向 - >尺寸。您还需要考虑一下构建过程,因为实际上您正在对“Dimensions”dacpac采用二进制依赖关系。您还可以将dacpac添加到引用项目(我倾向于为这些项目创建一个文件夹),因此它最终会在源代码管理中的相同位置。)
如果它有帮助,我创建了一个解决方案,演示了这两种技术并在此处共享:https://github.com/arapaima-uk/FKsToReferencedDacpacs
答案 1 :(得分:-1)
简而言之,您无法创建引用另一个数据库中的表的FK,这两个表应位于同一个数据库中。 FK是一个数据库对象,而不是服务器对象。
但是,您可以使用触发器来管理FK,这当然不是最佳解决方案。
FOREIGN KEY约束只能引用同一服务器上同一数据库中的表。必须通过触发器实现跨数据库引用完整性。有关更多信息,请参阅CREATE TRIGGER(Transact-SQL)。
https://msdn.microsoft.com/en-us/library/ms189049.aspx
根据您的评论(见下文),以下是一些想法:
你有几个好的论点。虽然我正在寻找一种可以并行建模多个业务流程的方法,但这可能不是一种选择。似乎唯一的选择可能是拥有一个大项目,然后处理如何管理同时在解决方案中工作的多个开发人员 - 谢谢
再次:加强团队内外的沟通。这是关键。