質問編集履歴

5

追記修正のため

2016/10/12 15:24

投稿

squirrel
squirrel

スコア18

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  テーブルA:
10
10
 
11
- ID|賞品番号|日**時** |**当たり外れ**
11
+ ID|賞品番号|日**時** |**当たり外れ**
12
12
 
13
13
  —————————————————————————————
14
14
 
@@ -28,27 +28,41 @@
28
28
 
29
29
  ID|賞品番号 |規定値 |**現在の当選数|更新日時**
30
30
 
31
- ——————————————————————————————
31
+ ——————————————————————————————
32
32
 
33
- 1 |0001 |2000 | **1450 |2016-11-02 09:03:23**
33
+ 1 |0001 |2000 | **1450 |2016-11-02 09:03:23**
34
34
 
35
- 2 |0002 |3000 | **2378 |2016-11-02 09:38:23**
35
+ 2 |0002 |3000 | **2378 |2016-11-02 09:38:23**
36
36
 
37
- 3 |0003 |1000 | ** 999 |2016-11-03 09:16:23**
37
+ 3 |0003 |1000 | ** 999 |2016-11-03 09:16:23**
38
38
 
39
39
 
40
40
 
41
41
  **テーブルC:
42
42
 
43
- ID|ユーザID IP 性別 |日時
43
+ ID|賞品番号勝率 |日時
44
44
 
45
- —————————————————————————————————
45
+ —————————————————————————
46
46
 
47
- 1 |foo |192.168.22.12 | 1 |2016-11-02 09:03:23
47
+ 1 |0001 | 10 |2016-11-02 09:03:23
48
48
 
49
- 2 |baa |192.168.22.13 | 0 |2016-11-02 09:03:28
49
+ 2 |000230 |2016-11-02 09:38:23
50
50
 
51
+ 3 |0003 | 50 |2016-11-03 09:16:23**
52
+
53
+
54
+
55
+ **テーブルD:
56
+
57
+ ID|ユーザID |IP |性別 |日時
58
+
59
+ ———————————————————————————————
60
+
61
+ 1 |foo |192.168.22.12 | 1 |2016-11-02 09:03:23
62
+
63
+ 2 |baa |192.168.22.13 | 0 |2016-11-02 09:03:28
64
+
51
- 3 |pee |192.168.22.14 | 1 |2016-11-03 09:16:23**
65
+ 3 |pee |192.168.22.14 | 1 |2016-11-03 09:16:23**
52
66
 
53
67
 
54
68
 
@@ -78,11 +92,13 @@
78
92
 
79
93
  0. テーブルAに「当り外れ」を格納するカラム追加。ただし、各賞品のくじを順番に引いて、当りが出た時点でインサートとなるため、ハズレの賞品番号は常に0000となります。
80
94
 
95
+ 0. 各賞品の勝率情報を格納するテーブルCが追加されました。
96
+
81
- 0. テーブルAへデータ挿入のタイミングでテーブルCにユーザ情報をインサートすることになりました。
97
+ 0. テーブルAへデータ挿入のタイミングでテーブルDにユーザ情報をインサートすることになりました。
82
98
 
83
99
  0. テーブルBに「現在の当選数」のカラムが追加になりました→当りが出たときだけUPDATEする。
84
100
 
85
- 0. ロックをかけた際にデッドロックの懸念が上がっているため、その辺をできるだけ回避できる方式だと望ましい
101
+ 0. ロックをかけた際にデッドロックの懸念が上がっているため、その辺をできるだけ回避できる方式だと望ましいです
86
102
 
87
103
 
88
104
 

4

仕様追加となった為

2016/10/12 15:24

投稿

squirrel
squirrel

スコア18

test CHANGED
File without changes
test CHANGED
@@ -8,31 +8,47 @@
8
8
 
9
9
  テーブルA:
10
10
 
11
- ID|賞品番号|日
11
+ ID|賞品番号|日**時** **当たり外れ**
12
12
 
13
- ———————————————
13
+ —————————————————————————————
14
14
 
15
- 1 |0001 |2016-11-02 |
15
+ 1 |0001 |2016-11-02 **09:03:23** **1**
16
16
 
17
- 2 |0002 |2016-11-02 |
17
+ 2 |0002 |2016-11-02 **09:03:28** **1**
18
18
 
19
- 3 |0003 |2016-11-03 |
19
+ 3 |0003 |2016-11-03 **09:16:23** **1**
20
20
 
21
- 4 |0002 |2016-11-04 |
21
+ 4 |0002 |2016-11-04 **09:38:23** **1**
22
+
23
+ 5 |0000 |2016-11-05 **09:45:23** | **0**
22
24
 
23
25
 
24
26
 
25
27
  テーブルB:
26
28
 
27
- ID|賞品番号 |規定値 |
29
+ ID|賞品番号 |規定値 |**現在の当選数|更新日時**
28
30
 
29
- ————————————
31
+ ———————————————————————————————
30
32
 
31
- 1 |0001 |2000 |
33
+ 1 |0001 |2000 | **1450 |2016-11-02 09:03:23**
32
34
 
33
- 2 |0002 |3000 |
35
+ 2 |0002 |3000 | **2378 |2016-11-02 09:38:23**
34
36
 
37
+ 3 |0003 |1000 | ** 999 |2016-11-03 09:16:23**
38
+
39
+
40
+
41
+ **テーブルC:
42
+
35
- 30003 |1000
43
+ ID|ユーザID IP 性別 |日時
44
+
45
+ —————————————————————————————————
46
+
47
+ 1 |foo |192.168.22.12 | 1 |2016-11-02 09:03:23
48
+
49
+ 2 |baa |192.168.22.13 | 0 |2016-11-02 09:03:28
50
+
51
+ 3 |pee |192.168.22.14 | 1 |2016-11-03 09:16:23**
36
52
 
37
53
 
38
54
 
@@ -49,3 +65,25 @@
49
65
 
50
66
 
51
67
  よろしくお願いします。
68
+
69
+
70
+
71
+ 【追記】ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
72
+
73
+ とてもご丁寧にご回答頂いて大変恐縮なのですが、その後やや仕様が追加されてしまいました(テーブルの追加箇所は太字表記)。
74
+
75
+ ただ皆さんのご回答を読んでも消化できていない部分があるため、それはそれとしてご回答にいくらか質問をさせて頂きたいと思いますが、できましたらこれらの変更や懸念点をふまえてご回答頂けますと幸いです。(因みに、新規にDBを作成するため、DB単位での設定も可能です。)宜しくお願いします。
76
+
77
+
78
+
79
+ 0. テーブルAに「当り外れ」を格納するカラム追加。ただし、各賞品のくじを順番に引いて、当りが出た時点でインサートとなるため、ハズレの賞品番号は常に0000となります。
80
+
81
+ 0. テーブルAへデータ挿入のタイミングでテーブルCにユーザ情報をインサートすることになりました。
82
+
83
+ 0. テーブルBに「現在の当選数」のカラムが追加になりました→当りが出たときだけUPDATEする。
84
+
85
+ 0. ロックをかけた際にデッドロックの懸念が上がっているため、その辺をできるだけ回避できる方式だと望ましい
86
+
87
+
88
+
89
+ ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/【追記】

3

2016/10/12 15:08

投稿

squirrel
squirrel

スコア18

test CHANGED
File without changes
test CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
 
4
4
 
5
- MySQLで、テーブルAに格納されているログデータのある品番号のカウント数が、テーブルBに格納されているその品の規定値未満だった時だけ、テーブルAにログデータをINSERTしたいと考えています。
5
+ MySQLで、テーブルAに格納されているログデータのある品番号のカウント数が、テーブルBに格納されているその品の規定値未満だった時だけ、テーブルAにログデータをINSERTしたいと考えています。
6
6
 
7
7
 
8
8
 
9
9
  テーブルA:
10
10
 
11
- ID|品番号|日付 |
11
+ ID|品番号|日付 |
12
12
 
13
13
  ———————————————
14
14
 
@@ -24,7 +24,7 @@
24
24
 
25
25
  テーブルB:
26
26
 
27
- ID|品番号 |規定値 |
27
+ ID|品番号 |規定値 |
28
28
 
29
29
  ————————————
30
30
 

2

説明文の改善

2016/10/10 05:05

投稿

squirrel
squirrel

スコア18

test CHANGED
File without changes
test CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
 
4
4
 
5
- MySQLで、テーブルAに格納されているあるログデータの商品番号カウント数が、テーブルBに格納されている商品の規定値未満だった時だけ、テーブルAにログデータをINSERTしたいと考えています。
5
+ MySQLで、テーブルAに格納されているログデータのある商品番号カウント数が、テーブルBに格納されているその商品の規定値未満だった時だけ、テーブルAにログデータをINSERTしたいと考えています。
6
6
 
7
7
 
8
8
 
9
9
  テーブルA:
10
10
 
11
- ID|商品番号|日付 |
11
+ ID|商品番号|日付
12
12
 
13
13
  ———————————————
14
14
 

1

サンプルテーブルの見た目の修正

2016/10/09 15:32

投稿

squirrel
squirrel

スコア18

test CHANGED
File without changes
test CHANGED
@@ -8,31 +8,31 @@
8
8
 
9
9
  テーブルA:
10
10
 
11
- ID|商品番号|日付 |
11
+ ID|商品番号|日付
12
12
 
13
- ——————————————
13
+ ——————————————
14
14
 
15
- 1 |0001 |2016-11-02 |
15
+ 1 |0001 |2016-11-02 |
16
16
 
17
- 2 |0002 |2016-11-02 |
17
+ 2 |0002 |2016-11-02 |
18
18
 
19
- 3 |0003 |2016-11-03 |
19
+ 3 |0003 |2016-11-03 |
20
20
 
21
- 4 |0002 |2016-11-04 |
21
+ 4 |0002 |2016-11-04 |
22
22
 
23
23
 
24
24
 
25
25
  テーブルB:
26
26
 
27
- ID|商品番号 |規定値 |
27
+ ID|商品番号 |規定値
28
28
 
29
29
  ————————————
30
30
 
31
- 1 |0001 |2000 |
31
+ 1 |0001 |2000
32
32
 
33
- 2 |0002 |3000 |
33
+ 2 |0002 |3000
34
34
 
35
- 3 |0003 |1000 |
35
+ 3 |0003 |1000
36
36
 
37
37
 
38
38