表に列を追加することは絶対的な要件ですか? 、または保存する追加フィールドを指定できるというだけですか?エンドユーザー (管理者はエンドユーザーとして数えます) にスキーマの変更を許可するのではなく、Entity-Attribute-Value のようなものを検討することを強くお勧めします。
このような場合、カスタム フィールドを定義するためのテーブルがあり、次に多対多の関連付けテーブルがあり、ユーザーが連絡先のカスタム フィールドの値を指定できるようになります。例:
Contact --------- -> ContactId | FirstName | LastName | etc. | | ContactField | -------------- | ContactFieldId <--- | FieldName | | | | ContactFieldValue | | ------------------- | -- ContactId | ContactFieldId ------------------------- Value
プレ>実装の詳細は明らかにあなた次第です (たとえば、
ContactId + ContactFieldId
を使用するかどうか)。ContactFieldValue
の複合主キーとして ) ですが、これで一般的な考え方が理解できるはずです。