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

c# – 我什么时候应该考虑代表主键……?

发布时间:2020-12-15 23:54:42 所属栏目:百科 来源:网络整理
导读:我什么时候应该考虑将主键表示为 classes? 当表使用复合键时,我们是否应该只将主键表示为类? 例如: public class PrimaryKey { ... ... ...} 然后 private PrimaryKey _parentID; public PrimaryKey ParentID { get { return _parentID; } set { _parentI
我什么时候应该考虑将主键表示为 classes?

当表使用复合键时,我们是否应该只将主键表示为类?

例如:

public class PrimaryKey
    { ... ... ...}

然后

private PrimaryKey _parentID;
        public PrimaryKey ParentID
        {
            get { return _parentID; }
            set { _parentID = value; }
        }

public void Delete(PrimaryKey id)
        {...}

我应该何时考虑将数据作为逗号分隔值存储在数据库表的列中,而不是将它们存储在不同的列中?

解决方法

我应该何时考虑将table-id列表示为类?

在不了解您的应用程序架构的情况下更难回答.如果您使用ORM(如nhibernate或linq)来自动执行sql,它们将自动为您创建类.

通常 – 如果您的主键是复合词并且在您的域中具有意义,请为其创建一个类.

如果它不是复合词,则不需要课程.

如果它在你的域中没有意义,那么很难证明一个类(如果创建一个类,我可能会使用结构而不是类,因为它将是一个值类型).我使用一个的唯一原因是,如果密钥需要在代码中使用,并且组成部分通常不需要单独访问.

我应该何时考虑将数据作为逗号分隔值存储在数据库表的列中,而不是将它们存储在不同的列中?

决不.您应该保留表normalized,以便为不同的数据设置不同的列和表.在这方面使用逗号分隔是不好的做法,特别是考虑到SQL中相当糟糕的文本操作支持.

(编辑:李大同)

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

    推荐文章
      热点阅读