asp.net - 许多表供许多用户使用?

标签 asp.net sql database-design

我有一个 Web 应用程序,在很多方面都可以将其视为 Multi-Tenancy 环境。我的意思是应用程序的每个用户都有自己的“自定义”环境,这些用户之间绝对没有交互。

到目前为止,我已经将 Web 应用程序构建为“单用户”环境。换句话说,我实际上没有做任何支持多用户的事情,而只是实现了我想要从应用程序中获得的功能。这是我的问题...构建多用户环境的最佳方法是什么:

  1. 所有用户都指向同一个“核心”后端。换句话说,我构建了通过适当的 SQL 查询来分隔用户的逻辑(例如 select * from table where user='123' and attribute='456')。
  2. 每个用户都指向一个唯一的表空间,该表空间是在他们加入系统时单独构建的。在这种情况下,我只需为每个用户生成所有相关的 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/

相关文章:

c# - asp.net如何区分服务器端的并发进度条请求

asp.net - ASP :Menu flows out of page

php - 选择哪种数据类型以及如何在脚本上实现它(多对多关系)

asp.net - 为什么我的内联 asp.net 无法在 <link href> 中工作?

c# - 在 asp.net 网站中禁用 *.java 文件编译

sql - 合并日期和时间并获取最新的日期时间

c# - 尝试访问数据库 C# asp.net 时源附近出现语法错误

sql - 更新后插入存储过程

php - 如何改进表数据库设计

mysql - 我需要为新语言准备一个新表吗?