我要实现一个接入控制清单对每个单独用户,以便他们可以分配访问他们自己的资源,使他们可以隐藏的东西,例如,从他们的母亲,但是表明自己的朋友。

现在存储ACL在一个数据库,看来似乎可以得到相当疯狂的时每个用户也是一个集团,它可以有许多的分组。所以我想储存ACL的东西在文本的文件。

好主意吗?坏主意?

编辑:我应该注意,我说的是一个单独的文本文件的每一个用户。我想创建一个ACL类我可以列化和写入该文本的文件。我担心的是,存储ACL在一个数据库将创造出奇的巨大的加入表和把一个巨大压力的数据库服务器。

有帮助吗?

解决方案

选择我将储存ACL在一个数据库:

  • 语言的访问和查询的数据更容易和标准(SQL)
  • 该数据库将给予你交易的索引,用于快速查询、完整性限制和安全。
  • 这取决于你如何将数据存储在一个地方文件可能需要移动你的数据文件应用程序。例如:移动应用从1到2.
  • 为数据是不可改变的(或不经常更改的)某种形式的缓存应使用。因此,独立的,如果你使用文件或数据库,你应该高速缓存这些数据对于一些时间。
  • 我敢肯定你可以找到很好的ACL的模式模板的关系数据库,可用作为参照,这样的文献: http://edhs1.gsfc.nasa.gov/waisdata/v2r20/ps/cd31110001.ps

我希望这有所帮助。

其他提示

我不知道它是如何变得更容易将其存储在一个文本文件中。数据的关系是一样的。当然,SQL并不总是友好的分层数据,但也不是一个纯文本文件。

是文本文件免受并发访问?否则数据库将是一个更好的主意。

XML是理想的分层数据。这可能与分层数据在数据库中的工作,虽然,这解释了如何漂亮(的概念不仅适用于MySQL的):

http://mikehillyer.com/articles/managing-hierarchical-数据在-MySQL的/

我个人不喜欢这样的数据存储在文本文件中。操作变得困难的多。

并发会咬你。正如复杂性和文件变大的性能下降。如将某事腐败的风险增加类似系统崩溃的功率损耗文件的写入过程中发生的。

一个数据库将通常从这些问题屏蔽你和离开你把注意力集中在逻辑

您可以使用自联接e.g在数据库中实施分级存储

ItemID    Data   ParentID
--------------------------

其中PARENTID是不同的行的一个指针的ItemID

  

我担心的是存储在所述访问控制列表   数据库将创造巨大的疯狂   连接表,把一个显著   应变在数据库服务器上。

通过一些其他文件每个用户一个文本文件,想必您的组/亚组,你必须推出自己的加入,不是吗?

您所描述的问题/需求到底是什么SQL是好的。 SQL是这个职位的合适的工具,没有任何问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top