【问题标题】:Allow users to create new categories and fields on ASP.NET website允许用户在 ASP.NET 网站上创建新的类别和字段
【发布时间】:2011-10-11 01:23:12
【问题描述】:

我们有一个 db 驱动的 asp.net /sql 服务器网站,并想研究如何允许用户创建新的数据库类别和字段 - 这很疯狂吗?有没有这样的有机网站的例子——我没有看到任何可能暗示我的事实? 对允许管理员进行一定程度控制的最佳方法感兴趣。

【问题讨论】:

  • 你的意思是一张桌子吗?能详细点吗?
  • ...您现在所在的网站允许这样做,但是您必须具有一定的声誉才能创建新标签。

标签: asp.net sql dynamic user-defined-functions


【解决方案1】:

我已经使用字典表而不是更传统的表来实现这些内容。

字典表可能如下所示:

create table tblDictionary
(id      uniqueidentifier, --Surrogate Key (PK)
 itemid  uniqueidentifier, --Think PK in a traditional database
 colmn   uniqueidentifier, --Think "column name" in a traditional database
 value   nvarchar,         --Can hold either string or number
 sortby  integer)          --Sorting columns may or may not be needed. 

那么,传统表格中的一行将变成多行:

传统方式(当然我不是编造 GUID):

ID     Type  Make      Model     Year    Color
1      Car   Ford      Festiva   2010    Lime

...将成为字典中的多行:

ID    ITEMID    COLUMN     VALUE    
0     1         Type       Car
1     1         CarMake    Ford
2     1         CarModel   Festiva
3     1         CarYear    2010
4     1         CarColor   Lime

您的 GUI 可以搜索 itemid=1 的所有记录并获取它需要的所有列。 或者它可以搜索itemid in (select itemid from tblDictionary where column='Type' and value='Car' 的所有记录以获取所有汽车的所有列。

理论上,您可以将用户定义的类型放入同一个表中(Type='Type')以及该Type具有的用户定义的列(Type='Column',Column='ColumnName') .这是 sortby 列的用武之地 - 如果您不想依赖其他内容,可以帮助您以正确的顺序构建 GUI。

不过,我有很多次觉得将用户定义的字典元素存储在字典中有点喝得太多。这些可以是单独的表,因为您在设计时已经知道它们需要什么结构。 :)

此方法永远不会具有传统表格所具有的报告速度或质量。这些通常要求开发人员预先了解结构。但如果要求是灵活性,这个可以胜任。

通常情况下,我网站的用户定义区域开始后会有一个项目来规范化报告数据等。但这允许用户以有限的方式开始并在参与之前确定他们的要求开发人员。

毕竟,我只想提几个可能对你有用也可能不适合你的选项:

  1. 如果您有 SharePoint,则用户已经能够创建 他们自己的名单以这种方式。
  2. 以这种方式保存的共享文件夹中的 Excel 文档 允许多个同时编辑也可以达到目的。
  3. Excel 文档,存储在网络服务器上并通过 ODBC 访问 也可以用作这样的单表数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 2014-03-17
    • 2016-01-29
    • 1970-01-01
    • 2012-03-24
    • 2012-04-16
    相关资源
    最近更新 更多