我最近遇到this,其数据库应该有几个未连接的表,在同一个数据库中提供不同的功能。
让我提出一个假设的情况,帮助您更好地理解和回答这个问题。您正在建立一个需要Image
数据库,RegisteredUser
数据库和Shop
数据库的网站。
以上链接的示例将它们全部存储在自己的小环境中的同一数据库中。换句话说,所有Image
数据库相关数据都存储在与所有RegisteredUser
数据库和Shop
数据库相关数据相同的数据库中。 (所有表格的一个数据库 - 没有连接到图像表等的商店表格。)
所以我的问题是:
首先,这是可行的吗?
为每种需求提供多个不同的数据库会更好吗?
我假设使用未连接的表创建数据库是不好的做法。这是真的吗?
这两个选项之间的性能差异是什么?
编辑:我在ASP.NET MVC Web应用程序中使用Entity Framework。我的服务器管理软件是Microsoft SQL Server 2014 Management Studio。
因此在图1中,三个表代表shop
数据库,两个表代表user
数据库。
在图2中,左边的第一个数据库代表shop
数据库,右边的第二个数据库代表user
数据库。
答案 0 :(得分:0)
如果没有更多相关信息,我想告诉您为什么许多数据库对性能不利。
我在很久以前遇到过这个问题,我尝试了多个数据库的性能,而不是一个数据库
在代码中,当您想要创建数据库时,您应该创建一个派生自DbContext
的上下文类。
所以你应该创建许多类,它将使用更多的存储。
在第二种情况下,您希望访问数据库以进行插入,更新等。
对于每个数据库,您应该与数据库context
类实例的对象建立连接,这样您就可以想象当应用程序想要打开与context
的连接时将花费多少时间。
但所有这些原因都取决于您的应用程序,例如假设您拥有一个拥有1m用户的社交网络,您想创建1m数据库吗?有100万context class
?!
以简单的方式管理哪一个:
总结:
编辑,据我所知,您同意第二种方式(拥有照片,商店,...数据库)