好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

我们正在考虑设计一个管理联系信息的应用程序.

客户的一个要求是允许其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中的复合主键),但这应该得到一般性的想法.

查看更多关于c# – 允许用户即时向其数据库添加列的最佳方法是什么?的详细内容...

  阅读:52次