いつもお世話になっております。
◆実装したい機能
データベースの同じ値ごとのレコード件数(※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でないと不都合な点とかってありますか?
「いいね!」 1
ご回答ありがとうございます。
現状ではご指摘の方法で困らないのですが、
今後、和食、洋食、中華のほかのジャンルが増えていくと
それ用のcustum stateを追加しなければならないと思うのです。
そのために都度メンテナンスしたくないので、
List Shifterを使って、ひとつのロジックでcustum stateに追加していきたい、
というのが、今回の質問の背景にあります。
何かいい方法があればいいのですが・・・
なるほどです。確かにメンテ必要になりますねー。
list型(custom stateもデータベースも)には同じ値が入らないという特徴と、custom stateだと
AとBという組み合わせをリスト化することができない(プログラミングできには"連想配列"に当たるもの)ので、やはり今回の例だと 保存用の別テーブルを作り、データベースに都度保存しておき、そのレコードをcustom stateにlistで保存しておく。
という実装がいいかもしれないですね。
そのテーブルのfiledは、
food_typeとamountで構成されているイメージです。
「いいね!」 1
色々考えていただいて、ありがとうございます!
そうですね、現状、おっしゃる案がいいですね。
custum stateに2次元配列、いつかできれば泣いて喜びます(笑)
何度もご丁寧にありがとうございました!
「いいね!」 2