2

システム内のいくつかのテーブルに使用する共通のデータベーススキーマがあります。それらの主な理由は、マルチテナントデータベースを実行しているため、すべてのユーザーが同じフィールドを必要とするわけではないということです。ただし、このタイプのスキーマの「固有名」が何であるかはわかりません。

テーブルの1つがどのように見えるかの例を次に示します。

ClientID | SurveyID | AnswerKey | AnswerVal
-------------------------------------------
1 | 1 | Fname | フレッド
1 | 1 | Lname | フリントソン
1 | 1 | メール| Fred@flintstone.com
1 | 2 | Fname | ミッキー
1 | 2 | Lname | ねずみ
1 | 2 | 電話| 555-3343

私たちはそれらを「垂直テーブル」と呼んでいますが、これが正しいかどうかはわかりません。

4

6 に答える 6

7

私はおそらく、Key-Value-Pairテーブルと呼んでいます

于 2009-10-15T15:34:11.887 に答える
5

「このテーブルスキーマの固有名は何ですか?」

くだらない。

たとえば、電子メールフィールドのAnswerValueにタイプ制約を課すために何をしなければならないかを考えてみてください。

いくつかの特定のフィールドのセットがすべていくつかの調査に存在することを要求する、おそらく必要とされる「完全性」制約を実施することに伴う努力を考慮してください。

単一行の作成に伴う労力を考慮してください(どのユーザーが作業しているかがわかっているため、どの列を含める必要があるかを事前に知ることができると思います。したがって、ユーザーがどのフィールドに関心があるかがわかります)。

ユーザーが関心のないフィールドを取得または操作する方法がないことを保証するための取り組みを検討してください。

そして、私はさらに多くがあると確信しています...

于 2009-10-16T11:46:50.983 に答える
4

エンティティ-属性-値

于 2009-10-17T19:20:21.787 に答える
2

これをソフトコーディングデータベース設計と呼びます。少し面倒くさいので申し訳ありませんが、この種のデザインはアンチパターンのようなにおいがします。

于 2009-10-15T15:46:45.290 に答える
1

偶然にも、この質問を見た後、私はこの記事の答えに出くわしました

エンティティ-属性-値テーブル

http://www.simple-talk.com/sql/database-administration/five-simple--database-design-errors-you-should-avoid/

于 2009-10-17T21:18:29.007 に答える
0

申し訳ありませんが、テーブルの正規化を検討することをお勧めします...それは保守可能なコードにつながる可能性があります(そして理解しやすくなります)。リレーショナルテーブルの力を活用してください!

于 2009-10-15T16:12:50.313 に答える