![]() |
1
8
在不了解应用程序体系结构的情况下更难回答。如果使用诸如nhibernate或linq-to-sql之类的ORM,它们将自动为您创建类。 一般来说-如果您的主键是一个复合的并且在您的域中有意义,那么为它创建一个类。 如果它不是复合的,就不需要类。 如果它在您的域中没有意义,就很难证明类的合理性(如果创建类,我可能会使用结构而不是类,因为它是一个值类型)。我使用它的唯一原因是,如果需要像代码中那样使用密钥,并且通常不需要单独访问组成部分。
从未。你应该保留你的桌子 normalized ,所以不同的列和表对应不同的数据。在这方面,使用逗号分隔是不好的做法,特别是考虑到SQL中对文本操作的支持非常差。 |
![]() |
2
1
什么意思?
根据 Normalization Rules 不应在同一列中存储多个值。 |
![]() |
3
1
字段中逗号分隔的值(或任何其他类似的技巧)是一种糟糕的做法,经常被用作权宜之计(即,当更改数据模型为时已晚时,您发现需要多个值)或一些遗留的错误。 通过在字段中对多值进行“加密”,您将失去RDBMS模型的所有好处:特别是,如果不可能与其他数据一起使用,则很难在逗号分隔字段中查找/排序/比较值。 |
![]() |
4
1
在几乎所有情况下,都应该将每个逗号分隔的值存储在自己的列中。这使SQL选择能够按特定的逗号分隔值筛选行。 例如,如果每个代表每月销售额的表行(1-12月)有12个逗号分隔的值,那么将数字存储在12列中可以进行操作;例如:返回8月份销售额大于10万美元的所有行。如果有一个将所有12个值“填充”到一个列中,那么需要返回所有行,并对每一行的列进行分析,以提取8月份的数据。 一个可以考虑“填充”的例子…其中逗号分隔的数据集中的值不能与另一行的数据相关或进行比较。 例如,在多项选择问卷中,答案将是一个或多个选项。如果问题的正确答案是选项A和选项B,第二个问题的正确答案是选项B和选项C,那么可以考虑将每个答案填充到一列中。在这个例子中,如果一个人接受了答案,就可以存储“b,c”和“b&c”,而不需要进行相互比较。 |
![]() |
5
1
唯一的情况是 可以 考虑使用自定义类作为“主键”对使用复合键的旧数据库使用或/m。 |
![]() |
6
0
一开始不确定你在找什么。我创建业务对象作为映射到我的数据层(通常是包含数据的数据表)的类。 第二个问题是永远不会。在很少的情况下,我会存储一个逗号分隔的列表,而不是创建一个规范化的数据结构。 |
|
Johnny T · 基于当前值的SQL合并表[重复] 7 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 8 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 8 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 8 月前 |
![]() |
Sax · 规范化Google表格(第一步) 8 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 8 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 8 月前 |