【问题标题】:Good methods for human-readable & human-maintained databases人类可读和人工维护数据库的好方法
【发布时间】:2009-09-23 02:10:17
【问题描述】:

所以这就是场景:

  • 您有一堆数据需要在 SQL 中结束。
  • 需要手动输入。
  • 这不是“输入一次就完成”的场景:它需要由人类以持续迭代的方式进行修改和扩展。评论将与条目相关联。数据输入人员能够看到彼此靠近的相关条目也很有用。
  • 不同的人需要同时处理不同部分的数据。
  • 还需要进行一些错误检查。 (让数据输入人员在 SQL 发现错误之前纠正错误)

我有一个答案,这就是我的项目目前的运作方式,但我突然想到,也许还有其他很棒的方法可以做到这一点,而不会出现我当前方法的问题。

【问题讨论】:

    标签: database validation data-entry


    【解决方案1】:

    YAML 视为一种将数据表示为普通、人类可读和人类可修复的文本的方式。

    一个非常简单的程序可以解析 YAML、定位错误并(如果没有错误)更新数据库。

    【讨论】:

      【解决方案2】:

      这些是一些非常基本的要求,您可能遇到的问题比所述的要多。尽管如此,您需要一个简单的管理实用程序来将数据输入数据库。

      直接的 SQL 查询/更新实用程序无法解决问题,因为您的团队需要验证等。您需要多用户访问具有事务支持的相同数据。您还希望注释您的数据条目并允许您的其他用户查看“相关条目”。

      您需要一个数据库维护应用程序。

      考虑使用类似Django 的东西,它内置了管理实用程序。这可能超出您的预期,但我想您未来的需求比您在此处所说的要多。

      【讨论】:

        【解决方案3】:

        我的回答基本上是

        • 在 Prolog 文件中进行数据输入工作 (Prolog facts)
        • 拥有多个文件,以适合数据的方式拆分。
        • 拥有将 Prolog 事实转换为 SQL 的脚本。
        • 在 Prolog 中进行一些测试以验证 Prolog 事实。

        这种方法的缺点:

        • 必须检查多个文件以查看条目是否已存在或已被移动等,这有点烦人。
        • 编写 Prolog 就这么简单,对于非程序员来说是相当可怕的(相比之下,填写 Excel 电子表格或一些指导过程)
        • 也许:合并很棘手,或者我的 VCS 不是很聪明(请参阅 Which SCM/VCS cope well with moving text between files?

        所以这很好用,但也许有更好的东西是我从未想过的!

        【讨论】:

        • “编写 Prolog 就这么简单,对于非程序员来说是相当可怕的”——即使对于程序员来说也是相当可怕的。
        • 呵呵,非常正确,但即使是非 Prolog 程序员也可以编写 facts 我认为 :)
        【解决方案4】:

        如果您所指的约束可以在数据库级别强制执行,那么像 Quest Toad 这样的免费软件可以允许他们将数据直接输入到数据库中。感觉很像在网格视图中使用电子表格,并在违反约束时显示错误。

        或者,根据您可用的现有堆栈,.Net 网格视图可以很容易地在短时间内将杂乱的屏幕拼凑在一起。

        【讨论】:

          猜你喜欢
          • 2013-11-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-11-26
          • 1970-01-01
          • 2015-04-25
          • 2019-02-24
          相关资源
          最近更新 更多