加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 允许用户即时向其数据库添加列的最佳方法是什么?

发布时间:2020-12-15 19:44:12 所属栏目:百科 来源:网络整理
导读:我们正在考虑设计一个管理联系信息的应用程序. 客户的一个要求是允许其powerusers或admin-type staff通过UI向数据库添加列.客户无法直接访问数据库(即,他们无法使用SSMS打开并进行更改). 我看到控件1)输入字段名称,2)输入数据类型,3)选择要添加字段的表.用户
我们正在考虑设计一个管理联系信息的应用程序.

客户的一个要求是允许其powerusers或admin-type staff通过UI向数据库添加列.客户无法直接访问数据库(即,他们无法使用SSMS打开并进行更改).

我看到控件1)输入字段名称,2)输入数据类型,3)选择要添加字段的表.用户单击按钮后,将使用新字段更新数据库.我需要检查适当的权限,该字段是否已经存在等等.我们还需要将表单字段连接到这个新字段,就像报表设计器界面一样.

>我在哪里可以找到显示我想要做的样本?
>这样做的缺点是什么?除了开发人员做这件事似乎相当多的工作之外.
>你会建议这样做吗?如果没有,什么是更好的解决方案?

编辑 – 我们需要使用SQL Server.不可协商.

解决方法

是绝对要求他们向表中添加列,还是只能指定要存储的其他字段?我强烈建议你考虑像Entity-Attribute-Value这样的东西,而不是允许最终用户(管理员算作最终用户)进行架构更改.

对于类似这样的事情,您将有一个表来定义自定义字段,然后是一个多对多关联表,以允许用户为联系人指定自定义字段的值.例如:

Contact
    ---------
 -> ContactId
|   FirstName
|   LastName
|   etc.
|
|                        ContactField
|                        --------------
|                        ContactFieldId <---
|                        FieldName          |
|                                           |
|   ContactFieldValue                       |
|   -------------------                     |
 -- ContactId                               |
    ContactFieldId -------------------------
    Value

实现的细节显然取决于您(例如,是否使用ContactId ContactFieldId作为ContactFieldValue中的复合主键),但这应该得到一般性的想法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读