質問するログイン新規登録

回答編集履歴

2

追記2

2018/01/30 01:24

投稿

sk_3122
sk_3122

スコア1126

answer CHANGED
@@ -10,9 +10,8 @@
10
10
  ※なお、既存のシステムが元々こういう造りになっていて今から直すのは難しい・・・というのであれば仕方ありませんが、新規に実装しているのであれば yambejp さんが書かれているように設計を変えた方が良いと思います。
11
11
  1つのカラムに複数の値を保持する方法は 一般的にあまりよくない設計とされています。
12
12
 
13
- ----
14
13
 
15
- 追記
14
+ # 追記
16
15
 
17
16
  うーん... テーブル構造を変えるのが無理なら、以下の感じでしょうか。
18
17
 
@@ -20,4 +19,41 @@
20
19
  2. php のコードで、sample1 をLOOPでまわして 一行ずつ処理。
21
20
  sample1.color をカンマで分割して、color テーブルの値から 対応する colorname を取得する。
22
21
 
23
- でもテーブル構造を変更できるなら、そちらの方が良いと思いますよ。
22
+ でもテーブル構造を変更できるなら、そちらの方が良いと思いますよ。
23
+
24
+
25
+
26
+ # 追記2
27
+
28
+ #### 現状
29
+
30
+ ```
31
+ ■sample1
32
+
33
+ |user_id |name |color |
34
+ |01 |a |1,2 |
35
+ |02 |a |1 |
36
+ ```
37
+
38
+ #### 修正案
39
+
40
+ ```
41
+ ■sample1
42
+
43
+ |user_id |name |
44
+ |01 |a |
45
+ |02 |a |
46
+
47
+ ■sample1color
48
+
49
+ |user_id |color |
50
+ |01 |1 |
51
+ |01 |2 |
52
+ |02 |1 |
53
+
54
+ ```
55
+
56
+ ...あれ、キーは user_id で良いんでしょうか。name も含みます?
57
+ (同じuser_idで、name の違うレコードが存在したりしますか?)
58
+
59
+ まあ とりあえずこういう形にして、sample1, sample1color, color を join して出す、のが良いと思います。

1

追記

2018/01/30 01:24

投稿

sk_3122
sk_3122

スコア1126

answer CHANGED
@@ -8,4 +8,16 @@
8
8
 
9
9
 
10
10
  ※なお、既存のシステムが元々こういう造りになっていて今から直すのは難しい・・・というのであれば仕方ありませんが、新規に実装しているのであれば yambejp さんが書かれているように設計を変えた方が良いと思います。
11
- 1つのカラムに複数の値を保持する方法は 一般的にあまりよくない設計とされています。
11
+ 1つのカラムに複数の値を保持する方法は 一般的にあまりよくない設計とされています。
12
+
13
+ ----
14
+
15
+ 追記:
16
+
17
+ うーん... テーブル構造を変えるのが無理なら、以下の感じでしょうか。
18
+
19
+ 1. color, sample1 は join しないで 別々に取ってくる。(クエリを2回発行)
20
+ 2. php のコードで、sample1 をLOOPでまわして 一行ずつ処理。
21
+ sample1.color をカンマで分割して、color テーブルの値から 対応する colorname を取得する。
22
+
23
+ でもテーブル構造を変更できるなら、そちらの方が良いと思いますよ。