【发布时间】:2011-05-24 20:49:06
【问题描述】:
我有一个 Django Web 应用程序,它(可能)为每个用户处理数百万条记录。简而言之,用户上传映射到数据库字段/表的文件,数据最终加载到 5 个 MySQL 表之一。我正在使用很棒的 DataTables 库将数据显示给用户。
在许多情况下,数据会加载到应用程序中,然后在源文件中发现不正确。例如,可能会加载 50 万条记录,但在 400 条记录中,名字和姓氏被调换了。用户可以一次操作/修改一条记录,但期望他们手动更改 400 条记录是不合理的。
显然,这可以通过允许他们删除 400 条违规记录并重新加载固定的源文件来解决,但这正是我问题的根源。您如何允许用户根据某些条件从 500K 的列表中选择性地删除(或修改)400 条记录?我本质上是在问,“我如何允许我的用户对我的数据库执行受限但任意的 SQL,而不会出现可怕的问题?”
我知道我可以在 Web 应用程序中构建某种“SQL 构建器”,但这种方法似乎......在某种程度上是错误的。我可以向我的用户公开像严重受限的 phpMyAdmin 或 SQL Buddy 这样的东西吗?我已经按照这些思路搜索了 Django 应用程序,但我一无所获。我想我可以为他们提供一些关键字搜索/过滤器,然后允许他们删除任何符合条件的内容。
有人解决了这个问题并有一些指导吗?对于最好的方法,我真的很难过。
【问题讨论】:
-
您确定您正在解决正确的问题吗?如果没有详细的分析,很难确定,但我的第一个想法是更好地预览将要导入的内容并结合强大的撤消将是一种更好的方法。
-
公平的问题。在许多情况下,加载数据的人并不是数据专家——只是 IT 人员。我在加载数据之前进行了可靠的检查,但是转置的名称(等)很难验证。数据被分发到一个完全不同的实体以进行处理/分析和逻辑连贯性。这是标记不一致的第二个实体。但到那时,数据已经在系统中,需要修改。更复杂的因素是,每一行数据都带有一个 has_been_sent 标志,以跟踪哪些已经发出,哪些没有发出。
-
Datatables 具有搜索功能。你不能用它对你的列进行文本搜索来过滤数据集吗?
-
@fosstrack,你是对的,查看数据表 api 看起来我可以返回过滤/搜索数据的子集。问题是每行数据有 30-40 个数据元素,并不是所有的数据都放在数据表中;相反,只有那些帮助用户识别唯一记录的值。我只显示数据表中 30-40 个奇数元素中的 11 个 - 其余的不显示。他们单击数据表中的行以查看记录详细信息。我想我可以将完整的记录详细信息添加到数据表中并隐藏不相关的列。