次の例を考えてみましょう - クライアントは「すべてのユーザーは1つのプロフィール画像しか持たない」と言うので、そのフィールドをusersテーブルに追加します。半年後要件が変化し、ユーザは実際にはn個のプロフィール画像を有する必要がある。3次元データベーステーブル
これは、user_picturesのような新しいテーブルを追加して1:1ではなく新しいカーディナリティー1:nを処理する場合にのみ可能です。しばしば、これは非常に複雑になることがあります。私がこの問題に遭遇するときはいつも、私たちが考えることができる3つの次元をすべて使用しないのだろうかと思っています。2次元のテーブルは、幾分不完全なやり方で制限されています。再び、ユーザーテーブル内のピクチャフィールドはの深さがであり、その深さによって、フィールドは同時にカーディナリティ1:1と1:nの両方を完全に表現する配列になりました。
テーブルフィールドは単純に配列になり、両方のカーディナリティを自動的にサポートします。少なくとも私はそれを使用します。すでにそこにあるようなものはありますか?
データベース(「1対1」、「1対多」、「多対多」)における「物」間のすべての可能な関係がカバーされます。 「三次元」テーブルのユースケースは何ですか?それは何を意味していますか? – NullUserException
このユースケースの例は、上記のプロファイル画像です:新しいテーブルを追加する必要がありますが、それは明らかに面倒です。モデルの関係を変更する必要があり、それに応じて更新されるなど - 多くの苦労と作業が必要です。私たちはそれよりもうまくいくと思います。二次元のフィールドではなく、テーブルを三次元にして解決しますか? – weltschmerz
リレーショナルデータベースは非常にしっかりした基礎 - リレーショナル代数(http://en.wikipedia.org/wiki/Relational_algebra)によってサポートされています。彼らは迅速かつ正確であることを保証します。これは、他の種類のデータベースが何年も訪れてきたときに、まだ彼らがまだ周辺にいる理由の1つです。壊れていないものを修正しないでください。 – NullUserException