【问题标题】:User created data stored in a table like structure用户创建的数据存储在类似结构的表中
【发布时间】:2012-07-09 14:50:29
【问题描述】:

我有一个 asp.net 4.0 c# 应用程序,用户现在可以在其中创建一个表并将数据存储在该表中。已经为版本 1 决定的一件事是,一旦创建了表格,就无法对其进行编辑,这纯粹是为了使它不那么复杂。最好有一个解决方案来编辑​​模式的位置。

我的第一个想法是在数据库中有一个表,每一行代表每个“表”,一列将模式存储在 xml 中,然后第二列将存储数据。当尝试提取数据时,我会将 xml 读入数据表,然后将其保存回数据库中的 xml。任何想法建议或与其他尝试此操作的人的链接将不胜感激!

提前致谢。

【问题讨论】:

  • 是否会创建固定数量的表模式?即,用户能否使用任何 SQL 数据类型创建包含任意数量列的表?
  • 不会有一个固定的数字,但数据类型将是固定的或有限的。列数可以限制在 15 左右。
  • 如果有用别忘了采纳答案

标签: c# asp.net sql xml


【解决方案1】:

有很多方法可以做到:

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

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

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

    这样您至少可以使用 SQL 来查询、搜索和修改您的数据,并且性能会比使用 XML 更好(尽管不如使用“创建表”SQL 时那么好)。

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

【讨论】:

  • 这是一个非常有趣的想法,正是我正在寻找的头脑风暴类型。您的第一点是我最初的想法之一,但是您可以想象,如果我们有 1000 多个客户制作自己的桌子,我只是不想看到所有这些或处理它。但我还没有想到第 2 点。让他们来吧!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-15
  • 1970-01-01
  • 1970-01-01
  • 2016-02-23
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
相关资源
最近更新 更多