假设我有一个添加公司的应用程序。我有一张这样的桌子:
create table companies(
id primary key,
name varchar
)
对于每家公司,我必须存储大量业务类型信息。由于它们太多,我决定为每个公司创建一个数据库,以避免冲突,性能非常低和复杂的查询。数据库名称将是我公司表中的公司名称。
我的问题是我想给公司名称和数据库一对一的关系,这样他们就会互相沉沦。那可能吗?如果没有,除了为每家公司创建数据库之外,还有更好的方法吗?
答案 0 :(得分:1)
这是对我的评论的详细说明。
数据库旨在处理数百万甚至数十亿行的表。我猜你的数据不是很大。
为什么要将单个实体的所有数据存储在一个表中?以下是一些原因:
where
子句并不特别“复杂”。(注意:这是指“实体”,一个数据库术语。公司的数据仍然可以分布在多个表中。)
为了提高性能,您可以调整数据模型,添加索引和分区表。这对于在数据库上运行的大量应用程序来说已经足够了。
在少数情况下,每个公司/客户需要一个单独的数据库。以下是我遇到过的一些内容: