0

问题是这样的:

我们应该为每个垂直行业提供 1 个数据库还是为所有内容提供 1 个数据库?网站将包含几个出售广告。

A)每个垂直示例 1 db 含义,当您查看这些页面时: http ://www.site.com/cars http://www.site.com/boats

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

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

或者

B)1 db for everything example /cars 连接到“db_everything”并根据链接到 items 表的表过滤汽车,因此 WHERE item_type="cars" /boats 连接到“db_everything”并根据链接到的表过滤汽车项目表,所以 WHERE item_type="boats"

那你会选A还是B?任何一个优点/缺点?它是 MySQL、Oracle 还是 Postgres 是否重要?

4

4 回答 4

1

只是我的两分钱:

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

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

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

于 2012-07-23T21:31:34.153 回答
0

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

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

还要看你的用途...

从长远来看,将它们保存在一个数据库中可能会给您更多的灵活性和机会来生成趋势数据或交叉链接类别。

但是,如果您正在制造引擎以向特定行业的其他公司销售,那么每个垂直方向 1 db 是有意义的。

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

于 2012-07-23T21:36:12.890 回答
0

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

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

于 2012-07-23T21:38:51.357 回答
0

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

绝对地。

Oracle 中的“数据库”一词的含义与大多数其他数据库中的完全不同。如果您正在考虑 MySQL 或 Postgres(或 SQL Server)中的“数据库”,您通常会认为 Oracle 中的“模式”(=用户)。

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

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

我认为 wegjprgm 的回答几乎可以确定。

于 2012-07-23T21:44:35.053 回答