私は本質的に大きなフォームであるアプリを持っていますが、そのフォームの 1 ページは、ユーザーの選択に応じて変化します。約 50 の異なるページがあり、それぞれに特定のリストと可能なユーザー入力の数があります。
データを SQLite データベースに保存したいのですが、どうすればよいですか? 考えられるすべての入力に対して列を作成し、使用されていないフィールドには何も保存しないでください。または、保存されているデータにデータベースを適応させることは可能ですか?
私は本質的に大きなフォームであるアプリを持っていますが、そのフォームの 1 ページは、ユーザーの選択に応じて変化します。約 50 の異なるページがあり、それぞれに特定のリストと可能なユーザー入力の数があります。
データを SQLite データベースに保存したいのですが、どうすればよいですか? 考えられるすべての入力に対して列を作成し、使用されていないフィールドには何も保存しないでください。または、保存されているデータにデータベースを適応させることは可能ですか?
ここで行うことは多くありませんが、フォーム用のテーブル、各ページ用のテーブル、および各 1 対多リスト用のテーブルを作成することをお勧めします。
たとえば、請求書には 2 つのテーブルが必要です。1 つは請求書用、もう 1 つは請求書明細用です。「ドケット」または「顧客」レコードには、すべての請求書が含まれる場合があります。
最初FormID
のテーブルで主キーを作成し、テーブルで外部キーを作成しPages
ます。関連"Page[n]ID"
するページに添付する必要があるもののリストがあるテーブルに外部キーを作成します。
クエリで実際に使用する必要があるフィールドを検討してください。うまくいけば、そのセットは小さいか、少なくとも扱いやすいものです。残りのフィールドについては、単一の列に格納します。たとえば、キーと値のペアの JSON 文字列として。
いいえ、リレーショナル データベースは可変列に「適応」できません。他の唯一のオプションは、提案したように、可能なすべてのフィールドの列を定義することです。ただし、それを行うことは、最初は負担になるだけでなく、フォームが将来変更されるため、メンテナンスが悪夢になるでしょう。