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

djangoの動的データベーステーブル

    興味深い質問です。もっと興味があるかもしれません。

    ユーザーごとに1つのテーブルを作成することは、メンテナンスの悪夢です。代わりに、すべてのユーザーのデータを保持する単一のテーブルを定義し、データベースの機能を使用して、対象のユーザーに関連する行のみを取得する必要があります(必要に応じてアクセス許可を確認した後、ユーザーに無制限を与えることはお勧めできません。特定の権限を設定せずに別のユーザーのデータにアクセスする)。

    提案されたソリューションを採用するには、関連するユーザーのテーブル名を含むSQLステートメントを作成する必要があります。データベースへの連続するクエリはほとんど異なります。これにより、すべてのSQLステートメントを「準備」する必要があるため(構文をチェックする必要があり、テーブルと列の名前を確認する必要があり、ユーザーの許可を要求するため)、作業が遅くなります。指定されたリソースにアクセスするには、承認する必要があります。

    単一のテーブル(モデル)を使用することにより、特定のデータ値(この場合はデータを検索するユーザーの名前)を変更するために使用されるパラメーターを使用して、同じクエリを繰り返し使用できます。データベース作業はより速く進み、すべてのユーザーのデータを記述するために必要なモデルは1つだけであり、データベース管理は悪夢ではありません。

    さらなる利点は、Django(使用しているように見える)が広範なユーザーベースのアクセス許可モデルを備えており、ユーザーログインの認証に簡単に使用できることです(方法がわかれば)。これらの利点は非常に説得力があり、異端から離れて、単一のテーブルで逃げることができると判断することを願っています(そして、標準のDjangoログインを使用することを計画している場合は、Djangoの中心部分として提供されるユーザーモデルとの関係プロジェクト)。

    続行する際は、お気軽に質問してください。あなたはデータベースの仕事に慣れていないようですので、私は適切なレベルの詳細を提示しようとしました。知識豊富なアドバイスにアクセスできない場合、このような多くの落とし穴があります。 SOの人々があなたを助けます。



    1. MySql-前の行の値と次の行の値を取得するにはどうすればよいですか?

    2. mysqldを停止する方法

    3. 文字列値1、2をOracleクエリへの入力として渡すことができません

    4. MySQLテーブルで2番目に高い値を取得します