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

ユーザーがオンザフライでデータベースに列を追加できるようにする最善の方法は何ですか?

    表に列を追加することは絶対的な要件ですか? 、または保存する追加フ​​ィールドを指定できるというだけですか?エンドユーザー (管理者はエンドユーザーとして数えます) にスキーマの変更を許可するのではなく、Entity-Attribute-Value のようなものを検討することを強くお勧めします。

    このような場合、カスタム フィールドを定義するためのテーブルがあり、次に多対多の関連付けテーブルがあり、ユーザーが連絡先のカスタム フィールドの値を指定できるようになります。例:

        Contact
        ---------
     -> ContactId
    |   FirstName
    |   LastName
    |   etc.
    |
    |                        ContactField
    |                        --------------
    |                        ContactFieldId <---
    |                        FieldName          |
    |                                           |
    |   ContactFieldValue                       |
    |   -------------------                     |
     -- ContactId                               |
        ContactFieldId -------------------------
        Value
      

    実装の詳細は明らかにあなた次第です (たとえば、ContactId + ContactFieldId を使用するかどうか)。 ContactFieldValue の複合主キーとして ) ですが、これで一般的な考え方が理解できるはずです。



    1. MariaDBでのLOG2()のしくみ

    2. SQLiteで現在のドットコマンド設定を表示する方法

    3. PDOでパスワードハッシュを使用してコードをより安全にするにはどうすればよいですか?

    4. Oracleへの接続が実行されると、セキュリティパッケージで使用できるクレデンシャルがありません