1
ice_cream
というテーブルがあり、テーブルがusers
、flavors
、favorites
の3つのテーブルがあります。 favorites
の各レコードには、ユーザーとフレーバーへの参照があり、ユーザーは複数のアイスクリームフレーバーを持つことができます。MySQLレコードのサブセットを置き換えてください
私は、ユーザーのお気に入りを別のお気に入りセットに完全に置き換えるトランザクションを作成しようとしています。 APIが受け入れたときたとえば、
PUT /user/100/favorites
{
"flavors": {
"2": { "stars": 2 },
"3": { "stars": 5, "comments": "Changed my life" },
"18": { "stars": 4, "comments": " " },
"24": { "stars": 4 }
}
}
favorites
の表は、これを達成する文の最も効率的なセットは何ですか?
| id | user_id | flavor_id | stars | comments |
| --- | ------- | --------- | ----- | ------------------ |
| 200 | 100 | 2 | 2 | |
| 201 | 100 | 3 | 5 | Changed my life |
| 203 | 100 | 18 | 4 | |
| 204 | 100 | 24 | 4 | |
に
| id | user_id | flavor_id | stars | comments |
| --- | ------- | --------- | ----- | ------------------ |
| 200 | 100 | 2 | 2 | Tastes OK |
| 201 | 100 | 4 | 3 | |
| 202 | 100 | 5 | 3 | |
から変更する必要がありますか考慮すべき
ポイント:
- 私は一貫性のある主のIDを維持すると心配していませんよ。
- ユーザーは実際には小規模な工芸品のアイスクリームシーンに入り、通常は各取引で約5000レコードを置き換えます。