我有一个为一家卡车运输公司开发的web应用程序,我想将其作为SaaS提供.设计数据库的最佳方法是什么?

我应该为每家公司创建一个新的数据库吗?或者我应该使用一个带有前缀为公司名称的表的数据库?或者我应该在每个表中使用一个数据库,只向表中添加一个company id字段吗?还是有别的办法?

推荐答案

大约10年前,面对类似的情况,我们 Select 了每个客户端一个数据库.我们有数百名(而不是数千名)客户.回过头来看,这是我们做出的最好的决定之一.备份非常简单.将单个客户端复制到我们的办公室进行分析非常简单(只需执行最后一次备份).扩展很容易(将单个大客户机移到不同的服务器可以释放压力很大的SQL服务器上的资源).Joel&;Jeff在stack overflow podcast(不是最近的)上对此进行了讨论,Joel做了和我一样的事情……每个客户端都有自己的数据库.数据库纯粹主义者经常会主张将所有人归入一个数据库,但我永远不会这么做.

-唐

Database相关问答推荐

如何使一个IP允许在运行GitHub操作到RDS数据库时,您不允许从外部访问数据库?

如何使授权服务器与外部数据库保持同步?

使用Postgres获取带有表架构的外键

怎么修复ORA-28001: the password has expired

存储所有排列的模式数据库

在一次 SQL 查询中更新多行的多列

Postgres - 如何返回缺失数据计数为 0 的行?

从 XML 读取数据

从 activerecord 获取索引哈希

设计数据库时最重要的考虑因素是什么?

主键、唯一键和外键约束以及索引之间有什么区别?

存储并仍然索引加密客户数据的最佳方式是什么?

谁有维基数据库?

如何使用 MySQL Workbench 架构差异两个数据库?

Redis Pub/Sub 和 Redis Stream 之间的主要区别是什么?

如何将sqlite表从磁盘数据库复制到python中的内存数据库?

App=EntityFramework 在 Sql 连接字符串中有什么作用?

由多个用户编辑数据库记录

SqlParameterCollection only accepts non-null SqlParameter type objects, not String objects

在 Heroku 上预编译assets时如何普遍跳过数据库接触