2012-07-23 68 views
0

问题是这样的:一个包含多个数据库或一个全局数据库的数据库结构?

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

A)每垂直例如 含义1分贝,当你查看这些网页: http://www.site.com/cars http://www.site.com/boats

/汽车字面连接到数据库让我们说 “db_cars”那个数据库只有汽车数据,没有其他东西。 /船从字面上连接到数据库可以说“db_boats”,并且该数据库只有船数据,没有其他内容。

两个数据库具有相同的结构,表名“项”,“卖家”等

OR

乙类)1分贝一切例如​​ /汽车连接到“立足db_everything”和过滤器的汽车表链接到物品表,所以WHERE item_type =“cars” /船连接到“db_everything”并基于与物品表链接的表过滤汽车,所以WHERE item_type =“船”

所以你会选择A还是B?任何优点/缺点?如果它是MySQL,Oracle或Postgres,它有什么关系?

回答

1

只是我的两分钱:

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

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

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

0

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

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

也取决于你的使用...

长期,让他们中一个数据块可能给你更多的灵活性和机会产生趋势数据,或交叉链接类别。

但是,如果您正在制造引擎以销售给特定行业的其他公司,那么每垂直1分贝就很合理。

我自己的倾向会是情况B,除非特殊需要告诉我,否则。

0

只要数据库位于同一用户的同一台服务器上,您仍然可以进行连接等操作。但是,如果您需要超过30张表格用于您网站的某个部分,我才会推荐。 当您必须直接在数据库中工作时,它可以让管理变得简单。

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

0

如果是MySQL,Oracle或Postgres,它无关紧要吗?

绝对如此。

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

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

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

wegjprgm的回答几乎钉我想。

相关问题