多数のテーブルと強制的な関係を使用して在庫管理のデータベースを構築しようとしていますが、32-関係(インデックス) Accessテーブルを使用します(Access 2007を使用)。アクセス時に32テーブル関係の制限を回避する
問題は、従業員表に32の明示的な索引があるという問題ではありません。むしろ、問題は、FOREIGN KEY
制約でEmployeeテーブルを参照できる回数の制限です。たとえば:
CREATE TABLE Employees (employee_number INTEGER NOT NULL UNIQUE)
;
CREATE TABLE Table01 (employee_number INTEGER NOT NULL REFERENCES Employees (employee_number))
;
CREATE TABLE Table02 (employee_number INTEGER NOT NULL REFERENCES Employees (employee_number))
;
CREATE TABLE Table03 (employee_number INTEGER NOT NULL REFERENCES Employees (employee_number))
;
...
CREATE TABLE Table30 (employee_number INTEGER NOT NULL REFERENCES Employees (employee_number))
;
CREATE TABLE Table31 (employee_number INTEGER NOT NULL REFERENCES Employees (employee_number))
;
CREATE TABLE Table32 (employee_number INTEGER NOT NULL REFERENCES Employees (employee_number))
;
例外は、インデックスを作成できませんでした」、上記の最後の行にスローされます。あまりにも多くのインデックスが定義されて
私はこの制限を回避する必要がありますどのようなオプション
。?私は、1:1の関係を持つ重複するテーブルを作成することが1つの方法だと聞いたことがあります。私はデータベース設計には新しいので、間違っていれば私を修正してください。従業員と1対1の関係を持つ従業員2(1つのフィールドを含む)テーブルと、従業員IDが全員である残りの関係からこの新しいテーブルとの関係gnキー。 2番目のテーブルに最初のテーブルが表示されるようにするには、どうすればよいでしょうか?
別の方法がありますか?
利用可能な情報がないため、適切に設計されたデータベースではまれな問題である可能性があります。解決策は一般的な知識です。 noobを許して!
更新:即時コンセンサスは、私のデザインがボルケーであるか、あまりにも野心的であるということです。これは非常にうまくいくかもしれません。しかし、私は別の質問の中で、むしろ一般的な設計の議論を持っているので、議論のために、誰かがこれに答えることができますか?その答えが単に「それをしないでください」であれば、私はそれを受け入れなければなりません。
あなたの全体的なデザインに問題があると思います。この特定の限度は、それ以外の場合は満たされません。 – Smandoli
"全体的な設計に問題があります"が間違っています。私はいくつかのシステムでこの問題にぶつかりました。 –
@トニー:ああ!その洞察に感謝します。しかし、私たちの照会者は、彼が "データベース設計の初心者"であると言います.... – Smandoli