【发布时间】:2017-09-24 22:20:48
【问题描述】:
我想实现类似于 SharePoint Online 的功能,这就是列表功能。我想创建动态列表添加新列等。用户可以填写表格并保存数据。
瓶颈是数据库,我很难理解应该如何构建它。
我正在考虑创建动态 SQL Server 表、列等,但也许这不是好方法。有人可以建议数据库的外观吗?
我正在考虑创建一个名为Lists 的表并在那里存储列表属性。然后与另一个名为Fields 的表建立多对多关系,我可以在其中存储与特定表单相关的所有字段。多对多关系,因为某些字段对于所有表单都是通用的,例如:Id、CreatedBy、Created、Modified、ModifiedBy 等。现在是困难的部分。我应该在哪里存储实际数据?我应该创建另一个名为FormData 的表并将数据存储在其中吗?它与Lists 和Fields 表应该有什么关系?
【问题讨论】:
-
至少你应该举一个例子。用户将填写什么样的表单?
-
@KumarHarsh:表单是动态的,正如我提到的,系统会自动填写一些常用字段(Id、CreatedDate、Createdby 等)。否则表单应该是动态的这意味着客户可以添加字段(文本框、复选框、下拉菜单、文本区域、日期时间等)
-
无论你想创建多么动态,它都必须遵循一些特定的域和业务规则。例如,学校的注册表和招标门户之间有很多差异。不可能both.impossible.Also说同一所学校的软件可以为1000所学校定制,每个学校的要求各不相同。这并不意味着它适合招标门户网站或者它是100%动态的。
-
@KumarHarsh:业务规则很简单:允许客户创建和自定义表单。我的意思是想象一个excel文件。在我的示例中,来自 excel 的工作表是表单,而 excel 中的列是我表单中的字段。在一张表中,您可以创建一个包含 10 列的表,用于存储客户信息。您可以添加更多字段或删除默认字段(Id、CreatedBy、CreatedDate 等)以外的字段。然后您创建另一个工作表并存储员工详细信息,您还可以自定义列的数量。现在我想实现相同的逻辑以允许客户动态创建表单。
-
猜你不明白我的学校 vs Tender 的例子。学校的员工数据或 Tender porta 或者它可以是任何东西。虽然让用户创建动态表单是可以的,但是整个软件必须遵循某些域,即 biz 规则。好的,在一个 UI 中,我允许用户创建表或更改表。然后相应地在另一个动态的 Employee UI 中允许用户填充员工数据。这意味着允许用户在一个 UI 中创建新字段或更改,然后在另一个 UI 中相应地创建动态 UI .因此,对于每个客户,您都可以区分数据库。虽然从 Excel 中汲取灵感是可以的,但它不能是 100% Excel。
标签: c# sql-server asp.net-core office365 asp.net-core-1.0