#railsのmodelのカラムに配列を入れたいです。
というか、データとしては配列が理想的だと思うのですが、modelのカラムのデータ型を配列にする(serialize等で)は気が引けます。いろいろ問題があるという話を聞くので。
それで、どうしたものかと考えているのですが、何か良い案はないでしょうか?
#具体的には
Userモデルの中に、好きなジャンル(複数可)という情報を入れたいです。ジャンルの情報はidで紐づくようにします。
自分が思いついた案としては
(1)favorite_genresにstring型で数字を入れ、取り出す際に数値配列に変換する。
ex) “ 01, 05, 08”がdbに入っており、取り出す際に[1,5,8]などに変換
(2)is_favorite_actionなどのように、ジャンルごとに好きかどうかのカラムを用意し、boolean型で管理
ジャンルの数は20とかその程度に限られてはいるので、(2)の運用も可能ではあると思うのですが、もしジャンルが増えたら全てのUserにカラムを追加しなければならず、手間かなと思います。また、取り出す際も、複数のカラムをチェックしに行かなければならないので手間ですよね。。
であれば(1)が良いような気もしますが、stringを無理やり配列に変更するのは、これで良いのかなぁと心配になります。
何ぶんrails applicationを作成するのが初めてな為、db設計の勝手がわからないのですが、このような場合にはどうするのがベストなのか、こんなやり方があるよなどのご意見、また自分の見立てで間違っている箇所などを指摘していただきたいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/21 03:11