此表模式的正确名称是什么?

Wal*_*ess 2 sql schema database-design entity-attribute-value

我们有一个通用的数据库模式,我们用于系统中的一些表.主要原因是我们运行的是多租户数据库,因此并非所有用户都需要相同的字段.但是,我不知道这种模式的"正确"名称是什么.

以下是我们的一个表格可能如下所示的示例:

ClientID | SurveyID | AnswerKey | AnswerVal
-------------------------------------------
1        | 1        | Fname     | Fred
1        | 1        | Lname     | Flintsone
1        | 1        | Email     | Fred@flintstone.com
1        | 2        | Fname     | Mickey
1        | 2        | Lname     | Mouse
1        | 2        | Phone     | 555-3343

我们一直称它们为"垂直表",但我不知道这是否正确.

And*_*rew 7

我可能会将其称为Key-Value-Pair表


Erw*_*out 5

"这个表模式的正确名称是什么?"

废话.

考虑一下如何对电子邮件字段的AnswerValue强加一些类型约束.

考虑执行可能需要的"完整性"约束所需的努力,这些约束要求在某些调查中存在一些指定的字段集.

考虑生成单行所涉及的工作(我假设可以预先知道哪些列需要包含在内,因为您知道您正在使用哪个用户,因此您知道他感兴趣的是哪些字段).

考虑确保任何用户无法检索或操纵他不感兴趣的任何字段所需的努力.

我相信还有更多......