我有一个 Web 应用程序,在很多方面都可以将其视为 Multi-Tenancy 环境。我的意思是应用程序的每个用户都有自己的“自定义”环境,这些用户之间绝对没有交互。
到目前为止,我已经将 Web 应用程序构建为“单用户”环境。换句话说,我实际上没有做任何支持多用户的事情,而只是实现了我想要从应用程序中获得的功能。这是我的问题...构建多用户环境的最佳方法是什么:
- 所有用户都指向同一个“核心”后端。换句话说,我构建了通过适当的 SQL 查询来分隔用户的逻辑(例如 select * from table where user='123' and attribute='456')。
- 每个用户都指向一个唯一的表空间,该表空间是在他们加入系统时单独构建的。在这种情况下,我只需为每个用户生成所有相关的 SQL 表,并为该用户添加某种后缀。 (例如,现在查询将类似于“select * from table_ where attribute ='456'”)。
简而言之,这是“select * from table where USER=”和“select * from table_USER”之间的区别。
最佳答案
动态创建表是相当肮脏和困惑的。此外,如果您有很多用户,如果您有大量的表,那么这将是一个完全困惑的情况 - 特别是如果您需要更改 n 个表而不是单个表中的某些内容。
--> 使用一张表并添加一些 user_id 列。通过适当的索引,这将与单独的表一样快甚至更快。
关于asp.net - 许多表供许多用户使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2853518/