現在Djangoをつかってwebアプリを作っている途中なのですが、以下の状況で質問をしたいです(Djangoに関係なくテーブル設計の仕方についても質問があるのでそこだけでもよろしくお願いします)。
アプリのデータとして、ユーザーが読んだ本を入力してもらいたいのですが、現状は入力フォームが、
読んだ本の数 _ 冊
とまず入力するところがあって入れた数だけ
◯ ジャンル ____
◯ 読んだ時期 ___ 月
という入力フォームが冊数分出てくるという風になっています。
ここでこの入力フォームに入力されたデータをデータベースに保存したいのですが、今は次のように考えて保存しようとしています。
- キー : ユーザーID, 整数
- 読んだデータ : '(ジャンルA, 5月), (ジャンルB, 7月)', 文字列
といった感じで読んだ本のリストを文字列にして保存しようとしています。
つまり、ユーザーの入力したいくつかの本のデータをまとめて文字列にして1つのデータとして保存しようと考えています。
ここで以下の質問をしたいです。
- そもそもデータベースのテーブルの設計の仕方(文字列にして1つに押し込んでしまう)でいいのか。こういうユーザーによってデータの量が変わる場合はどうしたらいいのか。
- もし上記の設計にしたとして、入力フォームでバラバラに入っているデータをDjangoの汎用ビューで保存できるのでしょうか(CreateViewを使おうとしましたが、素のCreateViewだとそ入力フォームのままバラバラに保存してしまいます)。
また、上記では本にしていますが、実際は本ではなく、データの性質として、
ユーザー1 に対して 複数の (選択肢から選ばれるデータ, 整数) といった形のデータが紐づくものとなっています(データの数は多くても10程度です)。上では本を例にして質問を書きました。
拙い内容で申し訳ないのですが、2つの質問のうちどちらかで良いので、ご教授よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。