我什么时候应该考虑将主键表示为类?
当表使用复合键时,我们是否应该只将主键表示为类?
例如:
public class PrimaryKey
{ ... ... ...}
Run Code Online (Sandbox Code Playgroud)
然后
private PrimaryKey _parentID;
public PrimaryKey ParentID
{
get { return _parentID; }
set { _parentID = value; }
}
Run Code Online (Sandbox Code Playgroud)
和
public void Delete(PrimaryKey id)
{...}
Run Code Online (Sandbox Code Playgroud)
我应该何时考虑将数据作为逗号分隔值存储在数据库表的列中,而不是将它们存储在不同的列中?
When should I consider representing the table-id columns as classes?
在不了解您的应用程序架构的情况下更难回答.如果您使用ORM(如nhibernate或linq)来自动执行sql,它们将自动为您创建类.
通常 - 如果您的主键是复合词并且在您的域中具有意义,请为其创建一个类.
如果它不是复合词,则不需要课程.
如果它在你的域中没有意义,那么很难证明一个类(如果创建一个类,我可能会使用结构而不是类,因为它将是一个值类型).我使用一个的唯一原因是,如果密钥需要在代码中使用,并且组成部分通常不需要单独访问.
When should I consider storing data as comma-separated values in a column in a DB table rather than storing them in different columns?.
决不.您应该保持表的规范化,以便为不同的数据设置不同的列和表.在这方面使用逗号分隔是不好的做法,特别是考虑到SQL中相当糟糕的文本操作支持.
| 归档时间: |
|
| 查看次数: |
164 次 |
| 最近记录: |