ユーザーと通知の2つのモデルがあります。
User has_many :notifications
Notification belongs_to User
これは通知の記述コードです
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| user_id | int(11) | YES | | NULL | |
| namespace | varchar(255) | YES | | NULL | |
| key | varchar(255) | YES | | NULL | |
| value | tinyint(1) | YES | | NULL | |
+------------+--------------+------+-----+---------+----------------+
通知の例は次のとおりです。
+----+---------+-----------+-----------------+-------+
| id | user_id | namespace | key | value |
+----+---------+-----------+-----------------+-------+
| 4 | -1 | facebook | launch_campaign | 1 |
| 5 | -1 | facebook | add_video | 1 |
| 6 | -1 | facebook | add_image | 1 |
| 7 | -1 | twitter | add_image | 1 |
| 8 | -1 | twitter | add_video | 1 |
| 9 | -1 | twitter | launch_campaign | 1 |
| 10| 21 | facebook | add_video | 0 |
| 11| 1 | facebook | add_image | 0 |
| 12| 10 | twitter | add_image | 0 |
| 13| 12 | twitter | add_video | 0 |
+----+---------+-----------+-----------------+-------+
user_id = -1の行がデフォルト値であり、ユーザーがデフォルト値を上書きするたびに、そのユーザーの行と名前名とアクション、および上書きされた値を追加します。
今私がするなら私はレールします
User.notifications
user_idを含む通知のみを取得しますが、ユーザーが上書きしていないデフォルトの通知(use_id = -1)も取得したいと思います。それを行う方法はありますか?また、このデザイン/トピックに関するアドバイスをいただければ幸いです:)!
これは私のデザインデータベース+データモデルデザインパターンのより詳細な説明でもあり ます