以通用方式存储信息,以便用户无法对其进行编辑

时间:2013-07-23 14:00:17

标签: c# database file interop format

我正在使用'数据库'在C#中构建一个应用程序,但我希望能够以尽可能多的编程语言访问'database'/ file的内容。 “数据库”基本上需要像字典(虽然它不是一个字典),所以像word=meaning一样,如果用户可以公开编辑它,我也不会太在意。

但是,我想在数据库中存储一些用户无法编辑的内容。例如,我想存储应用程序将分析和比较的唯一键。我还想添加一个'isEditable'属性来告诉应用程序它是否可以更改数据库,但这不是必需的。

您对如何存储此信息有任何建议吗?我考虑过XML,因为我可以只散列唯一键,但我认为它不适合word=meaning部分。

1 个答案:

答案 0 :(得分:2)

嗯,有很多选择。您可以使用传统数据库,并限制用户权限。这样,用户就无法编辑任何内容(或者只能执行您授予他们的权限)。如果需要在应用程序中部署,则可以使用紧凑型数据库,如Sqlite或SQL Server Compact。有一些方法可以加密整个数据库文件或密码保护它们,这样就可以防止用户编辑它们。 Sqlite提供多种语言的提供程序。

您可以尝试使用非传统数据库,例如MongoDB或db4objects。后者使用一种二进制序列化,以便您可以将代码对象持久保存到磁盘。同样,不容易用户编辑。你可以坚持你的收藏。使用前者,您将更接近key = value对的目标,因为您不必为这些选项中的任何一个定义模式。

如果您的目标是使其非用户可编辑,则XML文件可以正常工作,只要您加密它即可。