Database design 一个公司中不同业务的一个或多个事实表?

Database design 一个公司中不同业务的一个或多个事实表?,database-design,data-warehouse,dimensional-modeling,star-schema,fact-table,Database Design,Data Warehouse,Dimensional Modeling,Star Schema,Fact Table,我是数据库设计新手。 我正试图为汽车共享公司设计一个数据模型。 他们有不止一种商业模式,比如汽车共享、摩托车共享、配送 这是我的困境,我应该选择哪种选择: (数据库仓库总线体系结构) 我应该为不同的业务创建多个事实表吗? 不同的事实表代表一个业务模型并共享一些一致的维度 (一星模式) 或者我应该将不同的业务名称(汽车共享、摩托车、配送)存储在一维表中,称之为产品 谢谢 我的方法如下: 列出所有事实及其相关维度 确定所有事实维度的共性水平 如果你的事实都有大致相同的维度,那么你可以把它们都放在

我是数据库设计新手。 我正试图为汽车共享公司设计一个数据模型。 他们有不止一种商业模式,比如汽车共享、摩托车共享、配送

这是我的困境,我应该选择哪种选择:

  • 数据库仓库总线体系结构) 我应该为不同的业务创建多个事实表吗? 不同的事实表代表一个业务模型并共享一些一致的维度

  • 一星模式) 或者我应该将不同的业务名称(汽车共享、摩托车、配送)存储在一维表中,称之为产品


  • 谢谢

    我的方法如下:

  • 列出所有事实及其相关维度
  • 确定所有事实维度的共性水平
  • 如果你的事实都有大致相同的维度,那么你可以把它们都放在一个事实表中。对此没有硬性规定,但我想说,如果一个事实有两个以上的维度没有被其他事实使用(或者被其他事实使用但没有被这个事实使用),那么它需要在它自己的事实表中

    如果您决定可以在一个事实表中放入多个事实,那么它将成为一个判断调用。做出决定时要考虑的因素包括(显然不是一个明确的清单):

    • 您是否希望在同一查询中同时查询不同的事实?如果是这样,那么将它们放在一个事实表中就更容易了,例如按日期按事实类型计数
    • 您的数据量是否如此之大(或将来可能如此),以至于只有一个事实表会导致问题?如果是这样的话,那么在一开始就有单独的事实表,而不是在将来拆分它们,是有意义的
    • 安全性:您需要限制不同人群访问不同事实吗。如果是这样的话,那么使用单独的事实表可能会更容易

    我个人的偏好是,假设在同一时间查询不同的事实不是主要要求(上面的第一个要点),使用单独的事实表。虽然涉及到更多的ELT,但这并不重要——一旦你为第一个事实表构建了逻辑,那么所有其他事实表都应该是“复制粘贴”加上少量编辑。拥有不同的事实表更为灵活,将来可能会给您带来更少的问题

    这取决于很多事情,没有一个答案。你所问的与正常化有关。规范化数据库有三个主要原因。第一个是最小化重复数据,第二个是最小化或避免数据修改问题,第三个是简化查询。谢谢你的回答,这不是我要问的。我只是编辑我的问题,让它更清楚。