sql >> データベース >  >> RDS >> PostgreSQL

データベースに百万のテーブルを作成しますか?

    データベースに100万個のテーブルが必要な場合は、間違っています。

    表は、構造的および概念的に異なるデータを表すことを目的としています。そして、私はあなたがあなたのアプリケーションで何百万もの異なる概念で操作していると信じることを拒否します。

    たとえば、初心者はユーザーごとにテーブルを作成する必要があると考えることがあります。ただし、「ユーザー」は1つの概念であり、ユーザーごとに同じ情報(名前、メールアドレス、ユーザー名、パスワードなど)を保存するため、1つにする必要があります。 テーブル。各ユーザーは個別の行です。

    おそらくユーザーではなく、多くのインスタンスがある他の抽象化で、同様の間違いを犯しているようです。各インスタンスは、1つのテーブルの行である必要があります。

    データベースに何を保存しようとしているのかを説明していただければ、ほぼ確実に、それがどのようにすべきかを理解するのに役立ちます。 テーブルにマップされます。

    編集
    コメントを読んだ後(実際には質問自体に編集する必要があります)、ここに私の考えがあります:

    すべてのデータが同じように(トリプルとして)構造化されている場合は、すべてを3つの列を持つ単一のテーブルに格納し、効率的なルックアップに必要なインデックスを追加するだけです。

    すべての述語が事前にわかっている場合は、できます 述語ごとにテーブルを作成しますが、それがどれほど意味があるのか​​はよくわかりません。

    最もクリーンなオプションは、おそらく4つのテーブルを持つことです:
    (id, subject)(id, predicate)(id, object)(subjectid, predicateid, objectid)



    1. SQL Server:複数の行を1つの行に結合

    2. PostgreSQLトリガーとC#Windowsサービスを連携させる方法は?

    3. BLOBとストレージの要件

    4. サーバーからの応答を保存する方法、およびそのデータにアクセスするにはどうすればよいですか