一个包含许多数据库或一个全局数据库的数据库结构?

时间:2012-07-23 21:25:52

标签: mysql database oracle

问题是:

我们每个垂直或1个数据库应该包含1个数据库吗?网站将包含多个待售广告。

A)每个垂直示例1分贝 这意味着,当您查看这些页面时: http://www.site.com/cars http://www.site.com/boats

/ cars字面上连接到数据库让我们说“db_cars”,并且该数据库只有汽车数据,其他内容没有。 / boats字面上连接到一个数据库让我们说“db_boats”,该数据库只有船只数据,其他内容没有。

两个数据库具有相同的结构,表名称“item”“sell”等

OR

B)所有例子都是1分贝 / cars连接到“db_everything”并根据链接到items表的表过滤汽车,因此WHERE item_type =“cars” / boats连接到“db_everything”并根据链接到items表的表过滤汽车,因此WHERE item_type =“boats”

你会选A或B吗?是否有任何利弊?它是MySQL,Oracle还是Postgres是否重要?

4 个答案:

答案 0 :(得分:1)

只是我的两分钱:

我会为单独的应用程序使用单独的数据库,而不是在一个应用程序中使用单独的数据类型。

你想在同一个应用程序中显示船只和汽车吗?在同一页上?你有没有做过应该返回汽车和船只的SQL查询?

或者您基本上将船只和汽车视为完全独立的网站?如果它们是完全独立的,并且可以单独支持,并且可以单独修改应用程序,那么使用单独的数据库是有意义的。

答案 1 :(得分:0)

考虑到的一个考虑因素是网站代码的可重用性。控制单独的数据库用户名:数百个类别的密码组合听起来很烦人。

在性能方面,我认为除非您的单独数据库位于不同的计算机上,否则分离将变得无关紧要。

还取决于你的使用......

长期而言,将它们保存在一个数据库中可能会为您提供更多灵活性和机会来生成趋势数据或交叉链接类别。

但是,如果你要将引擎卖给特定行业的其他公司,那么每垂直1分贝是有意义的。

我自己的倾向是案例B,除非特殊需要告诉我。

答案 2 :(得分:0)

只要数据库位于同一用户下的同一服务器上,您仍然可以进行连接等。但是,如果您的网站的某个部分需要超过30个表格,我建议您这样做。 当您必须直接在数据库中工作时,它可以使管理变得容易。

但是如果你的网站不需要这么高的复杂程度,我会建议反对它,它不值得麻烦。

答案 3 :(得分:0)

  

它是MySQL,Oracle还是Postgres是否重要?

绝对

Oracle中的术语“数据库”意味着与大多数其他数据库完全不同。如果你在思考MySQL或Postgres(或SQL Server)中的“数据库”,你通常会认为Oracle中的“schema”(= user)。

在PostgreSQL中,您无法进行跨数据库查询。因此,对于分离,模式可能更好(因为它更灵活)。

关于您的实际设计决策:听起来您可能希望将所有内容都放在一个数据库/架构中,但没有足够的信息来真正回答这个问题。

我认为,wegjprgm的答案几乎可以解决它。