回答編集履歴
5
追記
test
CHANGED
@@ -31,3 +31,53 @@
|
|
31
31
|
サロゲートキーを`ID`とすると、一般的なナチュラルキーは、`メーカーID+商品コード+言語ID`になると思われます。
|
32
32
|
|
33
33
|
また、質問にある【商品マスタ】はm17nでの、表示する言語に対応するものに思え、別途、`メーカーID+商品コード`で管理される別テーブルが必要に思えます。
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
追記2
|
38
|
+
|
39
|
+
--
|
40
|
+
|
41
|
+
ナチュラルキーとしては、**製品メーカー**とそのメーカーで管理される**商品コード**が良いと思います。
|
42
|
+
|
43
|
+
```
|
44
|
+
|
45
|
+
【商品マスタ】サロゲートキー:商品ID、ナチュラルキー:メーカーID+商品コード
|
46
|
+
|
47
|
+
id integer - 商品ID
|
48
|
+
|
49
|
+
maker_id integer - メーカーID
|
50
|
+
|
51
|
+
product_code --商品コード
|
52
|
+
|
53
|
+
price integer - 価格
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
【商品言語別マスタ】サロゲートキー:ID、ナチュラルキー:商品ID+言語ID
|
58
|
+
|
59
|
+
id integer - ID
|
60
|
+
|
61
|
+
product_id integer - 商品ID
|
62
|
+
|
63
|
+
language_id integer - 言語ID
|
64
|
+
|
65
|
+
name varchar - 名称
|
66
|
+
|
67
|
+
spec varchar - 仕様
|
68
|
+
|
69
|
+
```
|
70
|
+
|
71
|
+
※過去の情報まで管理するようなシステムの場合は、履歴情報として日付をキーの一部にする事が多いですね。その場合に、その日付をサロゲートキーに含めるかどうかは悩ましいところですが。
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
> 商品マスタの外部キーである言語IDが代理キーだと、
|
76
|
+
|
77
|
+
> マスタ定義上紐付けて登録することが難しくなると感じていますが、どのように登録するのが良いでしょうか?
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
画面でメンテナンスする要件があるとの事なので、プルダウンで選択などの方法や、チェックなどにも使用できるので、言語はマスタ化されていた方が良いでしょう。
|
82
|
+
|
83
|
+
前提としてそのデータが既に存在するものを外部キーとするのですから、一緒に登録するという事を考えるものではありません。
|
4
推敲
test
CHANGED
@@ -30,4 +30,4 @@
|
|
30
30
|
|
31
31
|
サロゲートキーを`ID`とすると、一般的なナチュラルキーは、`メーカーID+商品コード+言語ID`になると思われます。
|
32
32
|
|
33
|
-
また、質問にある【商品マスタ】は表示する言語に対応するもの
|
33
|
+
また、質問にある【商品マスタ】はm17nでの、表示する言語に対応するものに思え、別途、`メーカーID+商品コード`で管理される別テーブルが必要に思えます。
|
3
推敲
test
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
--
|
28
28
|
|
29
|
-
質問にある【商品マスタ】はサロゲートキーでの管理とはなってい
|
29
|
+
質問にある【商品マスタ】はサロゲートキーでの管理とはなっていない様に見えます。
|
30
30
|
|
31
31
|
サロゲートキーを`ID`とすると、一般的なナチュラルキーは、`メーカーID+商品コード+言語ID`になると思われます。
|
32
32
|
|
2
追記
test
CHANGED
@@ -29,3 +29,5 @@
|
|
29
29
|
質問にある【商品マスタ】はサロゲートキーでの管理とはなってい無いように見えます。
|
30
30
|
|
31
31
|
サロゲートキーを`ID`とすると、一般的なナチュラルキーは、`メーカーID+商品コード+言語ID`になると思われます。
|
32
|
+
|
33
|
+
また、質問にある【商品マスタ】は表示する言語に対応するもので、別途、`メーカーID+商品コード`で管理される別テーブルが必要に思えます。
|
1
追記
test
CHANGED
@@ -19,3 +19,13 @@
|
|
19
19
|
ただ、体系的に管理出来そうなものは、別テーブルでサロゲートキーでの管理とした方が、後々の拡張性はあります。
|
20
20
|
|
21
21
|
ですが、管理しないよりは、作りこみにコストが掛かりますので、これも要件次第でしょう。
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
追記
|
26
|
+
|
27
|
+
--
|
28
|
+
|
29
|
+
質問にある【商品マスタ】はサロゲートキーでの管理とはなってい無いように見えます。
|
30
|
+
|
31
|
+
サロゲートキーを`ID`とすると、一般的なナチュラルキーは、`メーカーID+商品コード+言語ID`になると思われます。
|