我和一些朋友正在做一个学校项目,我一直在寻找一种方法,让我们所有人都可以在同一个数据库上工作和编辑,就像我们通过GitHub做VS项目一样。
我试过将数据库导入到VS上的SQL数据库项目中,这样我们就可以通过GitHub工作,但我不确定VS是否像实际的SSMS一样有效。
不通过GitHub也没关系,我只是想知道是否有一种方法可以让我们在数据库上工作,而不必导出它,然后再导入它。
编辑:我所说的“编辑”指的是对数据库进行整体处理,进行更改,获取数据,编辑表格等。
我和一些朋友正在做一个学校项目,我一直在寻找一种方法,让我们所有人都可以在同一个数据库上工作和编辑,就像我们通过GitHub做VS项目一样。
我试过将数据库导入到VS上的SQL数据库项目中,这样我们就可以通过GitHub工作,但我不确定VS是否像实际的SSMS一样有效。
不通过GitHub也没关系,我只是想知道是否有一种方法可以让我们在数据库上工作,而不必导出它,然后再导入它。
编辑:我所说的“编辑”指的是对数据库进行整体处理,进行更改,获取数据,编辑表格等。
1条答案
按热度按时间lyr7nygr1#
我所说的“编辑”指的是对数据库整体进行操作,进行更改,获取数据,编辑表等。
简短的回答是不:截至2023年2月,还没有针对RDBMS上的设计和数据的分布式协作工作的成熟工具(除了Dolt等实验数据库之外),尤其是在基于SQL Server的Microsoft/VS生态系统中。
其原因源于以数据库为中心的软件开发的现实:数据库中的实际数据与使用和操作数据的系统无关(例外情况[1]),这一原则使处理非常敏感数据(如医疗记录等)的公司能够完成任何工作:开发人员使用仅类似于真实世界数据的伪造的、生成的数据,而关于 * 真实的人 * 的 * 真实 * 数据存在于 * 几乎没有人能够访问 * 的单独数据库中,但是其将具有与其中具有伪造数据的开发人员的数据库完全相同的设计/模式。
如果你想在数据和设计上进行合作,那么我认为,使用当今工具的“最佳”方法是在云中拥有一个单一的RDBMS数据库,如Azure SQL或Amazon RDS [2],但你仍然应该在SSDT
*.sqlproj
项目中拥有源代码控制的数据库设计/架构,并且在没有通过SSDT的情况下,不要直接对此数据库进行设计/架构更改。并且仅在该实时/云数据库中进行 * 数据改变 *。如果你的合作者并不总是能够连接到这个集中的单一云托管数据库,那么你就有一个非常困难的问题要解决,这完全值得另一个问题(欢迎来到the CAP Theorem)。
[1]:像setup/config/“system”数据、用于引导的种子数据或测试用例中使用的数据等例外。要点是:设计一个动物分类数据库不需要 * 真实的 * 拉丁动物物种名称,设计一个病人/医疗数据库不需要在你的git仓库中存储真实的人和真实的条件的真实的细节。
[2]:啊,我讨厌这个词