1
1
如果没有一个合理的默认值,并且您不想分割数据,那么nulls几乎肯定是您的最佳选择。数据库在完成时不会验证它们是否为空…好吧,如果你不想分割桌子,你就没什么办法了(除了使用
|
2
2
我不明白你为什么不想把桌子分开。我不知道你在哪个领域,但在任何一个领域,我都可以想象有两类人:
作为一名业务主管,我不在乎第二个。但首先我非常关心,他们需要正确地输入所有的数据。 它还提高了效率——关于聚合数据的大多数查询将在第一个表上进行,而不是在第二个表上进行。第二个表将仅用于索引查找。 |
3
2
如果拆分表(是否有多个表?)不是一个选项,我将考虑创建单个表来存储不完整表单的对象的序列化,并且只在用户完全提交表单时将表单提交到“real”表。 |
4
1
您可以在每列上使用一个带有“allow nulls”的临时表来存储包含部分或不包含数据的表单,并在用户将表单标记为已完成时将数据复制/移动到最终表。这样,您就不需要依赖默认值(用户可能会忘记更改),您可以在任何状态下保存,最终仍然可以进行验证。 |
5
1
这是一种需要拆分表格的情况。我知道你说过你不想这样做,甚至在一条评论中说,“这个项目不需要这么努力”。但这确实是最好的解决方案。 设置初步表,其中包含除键可以为空之外的所有内容。当用户将表单标记为完成并通过验证时,将其移动到最终表。这不仅是正确的做法,而且在处理完成的表单时,它可能比“围绕可空值进行编码”的工作要少。 如果需要查看所有已完成或未完成的表单,请创建联合视图。 |
6
0
我会选择第一个选项,但会向数据库表中添加一列,这样当表单完成时,它就会被标记。然后,对于使用表单数据的任何内容,只需检查表单是否已完成。 这是我的建议。 |
7
0
如果需要发出类似“选择前10个没有填写特定字段的表单”的查询,则此查询将使用
如果你不需要搜索未填充的字段,那么就让它们
|
8
0
空通常意味着“不知道”(在数据库中),而空字符串实际上可以表示空字符串。 在您的案例中,我倾向于使用null作为“不知道”值。当您打印出数据时,您只需假设任何空值都意味着一个空字符串。 |
9
0
检查约束+视图 如果没有状态字段,请添加一个,这样您就可以知道它已完成。
在“已完成”表单上编写查询时,如果执行以下两个选项之一,则可以忽略检查所有位置的空值:
使用“完成视图”时,您不必执行所有验证检查,也不必担心结果中显示的未完成视图。 |
10
0
我也遇到过类似的情况,虽然我还没有找到解决方案,但我一直在玩弄使用简单的XML序列化来存储临时文档数据的想法。如果生成对对象中的数据建模的简单类(可能在需要时使用可以为空的类型),那么很容易将屏幕中的数据填充到这些对象中,将它们序列化为XML,然后将它们存储在临时的“临时”表中。当您的用户完成工作并希望提交或完成文档时,您将对序列化数据执行所有所需的验证,最终使用适当的数据结构和约束将其放入“real”表中。 |
kaiselwyvrn · 我无法打开Visual Studio项目 1 年前 |
4SadMemeXD · 无法在Django中选择相关类别 2 年前 |
Agrim Singh · 用户数据。名称未显示用户名 2 年前 |
Peloucvo · 用数据库中的数据填充JTable 2 年前 |
Montaser Majid · 用于从多行中提取单行的SQL查询 2 年前 |
Max J. · 用整数作为键将dict写入csv 2 年前 |