![]() |
1
1
我不确定这是否足够详细地回答这个问题。如果您从字面上询问两种类型的大小写,您也可以考虑一个表,其中每种类型都有一列和一个鉴别器。“正确”的答案可能取决于具体情况,例如要支持的不同类型的数量、速度与空间限制等。 有些人可能会说,最便宜的方法是最好的。具体来说,您认为的方法需要最少的成本来理解和维护(通常约占总拥有成本的60%)。 关于不这样做的所有建议,我同意 如果可能的话 . 另一方面,SharePoint是一个例子,它显示了这并非不可能。祝你好运! |
![]() |
2
5
听起来你在设计一个 EAV 解决方案,其中表存储多个属性的值,每行一个值。 EAV是一种非关系设计。没有“正确”的方法可以做到这一点 rules of relational database design . 正确的设计是将每个属性存储在 一 表。为每列提供正确的数据类型和描述性名称。只在每列中存储相同逻辑类型的值。 如果需要动态属性,请使用 non-relational data management solution . |
![]() |
3
2
我将使用第二个选项,并通过几个视图隐藏表情况的复杂性。这样,一旦您获得了更大的灵活性,您的应用程序仍然可以指向视图而无需更改,并且您可以将底层表重新排列到更干净的地方。 |
![]() |
4
2
可以考虑使用XML数据类型吗?如果是这样,您可以使用属性/元素来定义类型。
或者,
SQL Server 2005+对XML索引有一些很好的支持,可以满足您的需要。 从LINQ到SQL的角度来看,您可能有一个轻量级的类,它可以将类型映射到特定的数据类型;XML去/序列化可能是这里的一个选项。 |
![]() |
5
1
如果可能类型的数量很小 ,使用选项2(附加表+外键)或使用选项3。 选项3: 使用一个表,其中包含每种类型的字段和一个枚举字段,定义哪个字段是相关的。 如果可能类型的数目很大或不是常量 ,使用选项1(字符串)-可以将日期以字符串形式存储为YYYY-MM-DD-HH-MM-SS以保留排序。 |
![]() |
Michael Samuel · MYSQL在以下情况下自动创建索引 7 年前 |
![]() |
Patricia Rozario · 数据库设计确保一对一关系 7 年前 |
![]() |
dryhay · MySQL“多对多”关系错误 7 年前 |
![]() |
L. Fox · 我在这里用的是什么样的Laravel雄辩的关系 7 年前 |
![]() |
Geoff Harper · 我应该如何构建关系松散的SQL db 7 年前 |
![]() |
waroxx · SQL—当多个表具有相同的列时,最好怎么做 7 年前 |
![]() |
Lumpi01 · SQL 2不同的注释类型-最佳解决方案? 7 年前 |
![]() |
Hayreddin Tüzel · 预约系统数据库建模[关闭] 7 年前 |