我正在 Windows 服务器上使用 JavaScript、MySQL 和 PHP 进行 RIA。
我有 5,000 个结构相同的数据集,我想将它们放入数据库中。5 个表足以容纳数据,所有这些都相当小,除了一个表将具有 300,000 多条典型数据集的记录。
此外,500 名用户将获得对从这些数据集编译的统计数据的只读访问权限。这些统计数据由 PHP 提供(不允许直接访问)。更重要的是,他们对数据的访问方式各不相同。有些用户只能使用一个数据集,有些用户只能使用一些、一些、全部。
用户看到的结果比较少;大多数请求返回的行数远低于 100 行,最大的请求数约为 700 行。所有请求都通过 JavaScript RIA,它使用 Ajax 连接到 PHP,而 PHP 又连接到数据,执行其操作并输出 JSON 作为响应,然后 JavaScript 相应地呈现。
在考虑如何构建它时,出现了三个选项:
将数据集放在同一个表中。这可以很容易地在最大的表中给我 1,500,000,000 条记录。
为每个数据集使用单独的表。这将限制最大的表大小,但可能意味着 25,000 个表。
忘记数据库并坚持使用专有格式。
出于几个原因,我倾向于#2。
我担心使用非常大的表的问题(例如:查询速度、实现限制等)。
分开的桌子似乎更安全;它们限制了错误和结构变化的影响。
单独的表允许我使用 MySQL 的表级安全性,而不是实现我自己的行级安全性。这意味着更少的工作和更好的保护;例如,如果在没有行级安全性的情况下意外发送查询,用户可能会获得未经授权的数据。表级安全性并非如此,因为数据库会立即拒绝查询。
这些是我的想法,但我想要你的。你认为这是正确的选择吗?如果不是,为什么不呢?我错过了哪些考虑?如果可扩展性是一个问题,我应该考虑其他平台吗?