ユーザーが実際のデータベース テーブルにフィールドを動的に追加する現実的な方法はありません。'DateOfBirth' や 'ShoeSize' のような新しいフィールドを作成するためではありません。
ただし、アプリケーションのコア設計を変更することで、ユーザーから動的データを取得できます。データを固定の「水平」テーブルに保存する代わりに、データベースを抽象化し、各値を個別のレコードとして保存する必要があります。これは「垂直」テーブルのようなものです。
したがって、次のようなテーブルがあります
Field, Data, Type
---------------------------
"FirstName", "John", string
"LastName", "Smith", string
"DateOfBirth", "01/01/1950", datetime
"ShoeSize", "4", int
テクノロジーの問題ではなく、アーキテクチャの問題です。
ここに非常に優れた記事があり、それについてより深く議論しています。
これにより、アプリケーションがかなり抽象的になり、型の安全性が低下し、はるかに複雑になることを理解することが重要です。関連する余分な作業を完全に理解していない限り、これを試みることはお勧めしません。