是一个多租户数据库:
- 一个DB服务器对每个客户/租户有不同的(相同的)数据库/架构?要么
- 具有数据库/架构的DB服务器,客户/租户在其中共享同一表内的记录?
例如,在上面的选项1下,我可能在处有一个MySQL服务器mydb01.example.com
,并且其中可能有一个customer1
数据库。该customer1
数据库可能有10个表,这些表可以为该特定客户(客户1)提供我的应用程序。它也可能有一个customer2
数据库,其中有完全相同的10个表,但是只包含Customer#2的数据。它可能有一个customer3
数据库,一个customer4
数据库等等。
在上面的选项2中,将只有一个数据库/架构,例如myapp_db
,又有10个表(与上面的表相同)。但是在这里,所有客户的数据都存在于这10个表中,因此他们“共享”了这些表。在应用程序层,逻辑和安全性控制着哪些客户可以访问这10个表中的哪些记录,并格外小心以确保客户#1永远不会登录到应用程序并看到客户#3的数据,等等。
这些范例中的哪一个构成了传统的“多租户” DB?如果两者都不是,那么有人可以提供一个多租户数据库示例吗(使用上述场景)?