【问题标题】:One database structure with many databases, or one global database?一种具有多个数据库的数据库结构,还是一个全局数据库?
【发布时间】:2012-07-24 05:44:35
【问题描述】:

问题是这样的:

我们应该为每个垂直行业提供 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 分贝适用于所有示例 /cars 连接到“db_everything”并根据链接到 items 表的表过滤汽车,因此 WHERE item_type="cars" /boats 连接到“db_everything”并根据链接到 items 表的表过滤汽车,因此 WHERE item_type="boats"

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

【问题讨论】:

    标签: mysql database oracle


    【解决方案1】:

    只要我的两分钱:

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

    您想在同一个应用中显示船只和汽车吗?在同一页上?您是否曾经执行过应该返回汽车和船只的 SQL 查询?

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

    【讨论】:

      【解决方案2】:

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

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

      还要看你的用途...

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

      但是,如果您要制造引擎以出售给特定行业的其他公司,那么每个垂直 1 分贝是有意义的。

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

          是 MySQL、Oracle 还是 Postgres 重要吗?

          绝对的。

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

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

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

          wegjprgm's answer 我认为几乎可以确定。

          【讨论】:

            猜你喜欢
            • 2011-02-23
            • 2010-09-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-11-12
            • 2016-01-20
            相关资源
            最近更新 更多