代码之家  ›  专栏  ›  技术社区  ›  pfctdayelise

人类可读和人类维护数据库的良好方法

  •  1
  • pfctdayelise  · 技术社区  · 15 年前

    所以这是一个场景:

    • 您有许多数据需要以SQL结尾。
    • 它需要手工输入。
    • 它不是一个“一次进入,你就完成了”的场景:它需要被人类以一种不断迭代的方式修改和扩展。注释将与条目关联。对于数据输入来说,人们能够近距离地看到相关的条目也是很有用的。
    • 不同的人需要同时处理不同的数据部分。
    • 还需要进行一些错误检查。(让数据输入人员在SQL发现错误之前纠正错误)

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

    4 回复  |  直到 9 年前
        1
  •  2
  •   S.Lott    15 年前

    YAML 作为一种将数据表示为简单的、人类可读的和人类可修复的文本的方法。

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

        2
  •  2
  •   jro    15 年前

    这些是一些真正的基本需求,您可能比所述问题有更多的问题。不过,您需要一个简单的管理实用程序来将数据输入数据库。

    一个直接的SQL查询/更新实用工具并不能剪切它,因为您的团队需要验证等等。您需要多用户访问具有事务支持的同一数据。您还希望对数据条目进行注释,并允许其他用户查看“相关条目”。

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

    考虑使用类似 Django 它是建立的管理实用程序。这可能比你预期的要多,但我想你未来的需求比你在这里所说的要多。

        3
  •  1
  •   Community datashaman    7 年前

    我的答案基本上是

    • 让数据输入在prolog文件中工作( Prolog facts )
    • 有多个文件,以对数据正常的方式拆分。
    • 有一个将prolog事实转换为sql的脚本。
    • 在Prolog中进行一些测试来验证Prolog事实。

    这种方法的缺点:

    • 要检查多个文件以查看某个条目是否已经存在或被移动等有点烦人。
    • 编写prolog,虽然很简单,但对于非程序员来说是相当可怕的(相比之下,填写Excel电子表格,或者一些指导性的过程)。
    • 可能:合并很棘手,或者我的风投不太聪明(见 Which SCM/VCS cope well with moving text between files? )

    所以这很有效,但也许还有更好的东西我从来没有想到!

        4
  •  0
  •   Cory House    15 年前

    如果您所指的约束可以在数据库级别强制执行,那么像QuestToad这样的自由软件可以允许它们直接将数据输入数据库。它非常像在网格视图中使用电子表格,并在违反约束时显示错误。

    或者,取决于您现有的堆栈,.NET网格视图使您很容易在很短的时间内将CRUD屏幕组合在一起。