![]() |
1
2
我建议使用数字2和3的组合。在可能的情况下,为标准关联(如地址)建模表。这是最理想的方法…
但是,对于无法汇总成这样逻辑分组的不断变化的值,除了使用
在
这将停止同一员工的重复属性。 |
![]() |
2
3
查看nosql数据库的当前裁剪可能很有用,它允许您为每条记录存储任意的键值对集。 我建议你看看CouchDB、MongoDB、Lucene等…… 如果架构经常在SQL数据库中更改,那么这将导致一场噩梦,尤其是报告。 将所有内容放入(rowid、key、value)三元组是灵活的,但由于记录数量巨大,因此速度较慢。 ERP供应商这样做的方式只是建立他们确定的字段的模式,并在固定命名列中添加大量的“flexfields”(即20个数字、20个字符串等),然后使用查阅表查看哪个flexcolumn对应于什么。这允许将来有一定的灵活性,同时基本上有一个静态模式。 |
![]() |
3
1
如您所说,如果经常添加新属性, EAV 数据模型可能对您很有用。 |
![]() |
4
1
有一种模式,称为观察模式。
有关解释,请参阅以下问题/答案: one. >, , two. >, , three. 。 一般来说,如下所示: 例如,受试者 Employee,Company and Animal can all have observation name (trait),受试者 Employee and Animal can have observation weight (measurement)and subject beer bottle can have observations label (trait)and volume (measurement)。这一切都适合这个型号。 一般来说,如下所示:
例如,主题 员工、公司和动物 都能观察到吗 名字 (特征),受试者 员工和动物 可以观察 重量 (测量)和受试者 啤酒瓶 可以观察到 标签 (性状) 体积 (测量)。这一切都符合模型。 |
![]() |
5
0
将扩展列表组合为一个
如果使用单调序列在所有对象表中分配主键,则单个属性表可以保存所有对象的属性。 |
![]() |
6
0
我将使用1和2的组合。如果您经常添加属性,我认为您没有处理数据需求的能力。 我支持添加的一些属性属于另一个表。如果您继续添加诸如Java认证、ASP认证、……之类的属性,那么您需要一个证书表。这可以是与列出可用证书的证书代码表的关系。 像manager这样的属性可以是属性或关系表。如果员工之间有多个关系,那么考虑一个具有关联类型的关系表。具有矩阵管理结构的组织将需要一个发布表。 地址和电话号码通常放在单独的表格中。一个地址键,如雇员ID,地址类型,将是适当的。如果需要历史记录,请在键中添加开始日期列。 如果您保留历史记录,我建议在适当的列上使用开始日期和结束日期列。当“开始日期”为真时,我尝试使用记录处于活动状态的关系。 重量、眼睛颜色等属性。 |
|
Johnny T · 基于当前值的SQL合并表[重复] 5 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 5 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 5 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 5 月前 |
![]() |
Sax · 规范化Google表格(第一步) 5 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 5 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 6 月前 |