【发布时间】:2011-08-04 19:47:21
【问题描述】:
我有一个在 sql server 数据库中存储信息的 .NET 应用程序。
我想向我的应用添加许可,以根据许可仅允许数据库中的特定数量的项目。 例如,假设我有一个“项目”表,并且许可证是 5000 个项目。
我面临的问题是,如果表行数 > 5000,我不能依赖我的应用程序不插入项目,因为用户可以将项目直接插入数据库,因为 提供了服务器由客户提供,这样他就可以完全不受限制地访问数据库。 (由于这个特殊问题,我也不能使用任何 sql 服务器端解决方案)
另外,如果我向表中添加一个字段,我用密码散列的项目信息填充该字段,则用户不能再手动添加项目,但我必须遍历整个表并检查每个项目是否在确定是否添加每个新项目之前,已获得许可并计算许可项目。这是不切实际的,因为我每分钟收到数百个项目,因此会极大地影响性能。
有人知道如何实现这一目标吗?
【问题讨论】:
-
您是否考虑过以不同的方式限制软件。除了简单地知道有多少行之外,如果有超过 5,000 个项目,我根本没有办法让应用程序运行。老实说,您不能同时拥有“允许用户手动添加项目”和“阻止用户在达到 5,000 个限制后添加项目”。
-
我不希望用户手动添加项目,但问题是用户也可以访问数据库,因为有时我会在他们的服务器上安装应用程序。
-
如果您每分钟收到 100 件物品,那么您的许可证不是只有大约 50 分钟有效吗?你确定这是要走的路吗?
标签: .net sql-server