2012-07-09 43 views
0

我有一个asp.net 4.0 c#应用程序,其中用户现在将能够创建一个表并将数据存储在该表中。第一版决定的一件事就是一旦创建了表格,它就不能被编辑,这纯粹是为了使它不那么复杂。如果有解决方案可以在哪里编辑模式也是很好的。用户创建的数据存储在表中,如结构

我的第一个想法是在db中有一个表,每一行代表每个“表”,一列将该模式存储在xml中,然后第二列存储数据。当试图拉取数据时,我会将xml读入数据的可处理工作中,然后将其保存回db中的xml中。任何想法建议或链接到其他人尝试这将不胜感激!

在此先感谢。

+0

是否有固定数量的表格模式将被创建?也就是说,用户能够使用任何SQL数据类型创建任意数量的列的表? – 2012-07-09 15:25:21

+0

不会有固定的号码,但数据类型将被固定或限制。列数可以限制在15岁左右。 – user1512300 2012-07-09 17:44:50

+0

如果有用,请不要忘记接受答案 – 2012-07-11 11:17:34

回答

0

有很多方法可以做到这一点:

  1. 您可以通过“创建表” sql语句生成真正的表。这会给你提供最好的性能,但从数据库管理员的角度来看,这将是一场噩梦。如果你没有经验,不要这样做。

  2. 制作表格:MyTable,MyColumn,MyRow和MyCell。

    • MyTable的将有MyTableID(主键)和名称,
    • MyColumn将有MyColumnID(主键),MyTableID(外键),名称
    • MyRow将有MyRowID(主键),MyTableID(外键)
    • 了myCell将有MyCellID(主键),MyColumnID(外键),MyRowID(外键)和Value(大可变长度的字符串)

    这样,您将至少能够使用SQL来查询,搜索一个nd修改你的数据和性能会比使用XML更好(虽然不如使用“create table”SQL时好)。

  3. 您可以使用NoSQL数据库。他们中的很多人没有严格的结构,并且可以存储类似JSON的东西,因此您可以将几乎所有内容存储在其中。这个解决方案有很多缺点(比如缺少SQL和没有ACID事务完整性),但也许它适用于你的情况。开始于What NoSQL solutions are out there for .NET?

+0

这是一个非常有趣的想法,正是我期待的脑力激荡的类型。你的第一点是我的第一想法,但你可以想象,如果我们有1000多个客户制作自己的桌子,我只是不想看到所有这些或处理它。但我还没有想到第2点。让他们来吧! – user1512300 2012-07-09 15:26:16