いつもお世話になっております。
◆実装したい機能
データベースの同じ値ごとのレコード件数(※1)をcustum stateに保持したいです。
ただし、レコード件数なのでユニーク値とは限りません。
※1…具体的には、データベース「food_data」の項目「food_type」
(和食・洋食・中華の3種類)ごとの各件数。
(添付ファイルをご参照ください)
◆発生している問題
custum stateにplus itemで保持しようとしたのですが、
同じ値を格納することはできないことがわかりました。
(この場合「1」が2回出現)
ダミー値を付与して、とも考えましたがうまくいかず、
なにかいい方法があればご教示いただければと思います。
どうぞよろしくお願いいたします。
おっしゃる通り、custom state(に限らず) list型には同じ値を複数入れることはできません。なので、
和食の件数を格納するcustom state
洋食の件数を格納するcustom state
中華の件数を格納するcustom state
の3つを別で定義するしかないかもです。
listでないと不都合な点とかってありますか?
ご回答ありがとうございます。
現状ではご指摘の方法で困らないのですが、
今後、和食、洋食、中華のほかのジャンルが増えていくと
それ用のcustum stateを追加しなければならないと思うのです。
そのために都度メンテナンスしたくないので、
List Shifterを使って、ひとつのロジックでcustum stateに追加していきたい、
というのが、今回の質問の背景にあります。
何かいい方法があればいいのですが・・・
なるほどです。確かにメンテ必要になりますねー。
list型(custom stateもデータベースも)には同じ値が入らないという特徴と、custom stateだと
AとBという組み合わせをリスト化することができない(プログラミングできには"連想配列"に当たるもの)ので、やはり今回の例だと 保存用の別テーブルを作り、データベースに都度保存しておき、そのレコードをcustom stateにlistで保存しておく。
という実装がいいかもしれないですね。
そのテーブルのfiledは、
food_typeとamountで構成されているイメージです。
色々考えていただいて、ありがとうございます!
そうですね、現状、おっしゃる案がいいですね。
custum stateに2次元配列、いつかできれば泣いて喜びます(笑)
何度もご丁寧にありがとうございました!