在关系模型中存储不完整数据的最佳方法是什么?

时间:2016-12-15 17:25:33

标签: sql-server entity-framework database-design orm

我正在编写一个Web应用程序,它从一系列表单中获取用户输入(想想"向导")并在用户进行时将其存储在SQL数据库中。

我们假设他们代表具有地址公司提交申请表。申请表还将包含支持信息的列表。

因此,简化的架构将有4个表(请注意,每个表都有很多其他要捕获的字段):

**ApplicationForm**
Id: PK
CompanyId: FK

**Company**
Id: PK
Address: FK

**Address**
Id: PK

**SupportingInfo**
Id: PK
ApplicationFormId: FK

用户首先启动申请表,在几个屏幕上填写一些重要的详细信息,然后添加公司详细信息,然后添加公司地址,最后添加支持信息列表。

鉴于我无法在一个插页中创建整个数据模型,我该如何保存用户'在他们浏览网页时输入?

当我保存ApplicationForm时,由于没有公司,我将违反FK。当我创建公司时,我将违反FK,因为以后只会保存地址。 (支持信息没有此问题,因为它具有多对一关系,并且FK始终有效。)

我想到了以下几点:

  • 我是否禁用约束检查?
  • 或允许FK为空?
  • 或创建"虚拟"相关表格中的条目,直到用户输入其详细信息?
  • 或创建单独的数据模型数据输入和持久性??
  • 或保存"正在进行中"数据为JSON还是XML?

所有选项都有明显的缺点,最后两个选项对于一个简单的用户输入应用来说似乎有些过分。

如果这对答案有任何影响,我正在使用Entity Framework和SQL Server。 (我意识到NoSQL可能是一个建议,但我不能改变数据库。)

0 个答案:

没有答案