たとえば、
名前、住所、電話番号、友達
というフィールドがあったとします。
名前住所電話番号は基本一つだけなので困らないんですが、
友達は複数いる可能性があります。
この場合この友達の情報は別のテーブルに格納するのがよいのでしょうか?
その友達テーブルは、
名前、友達のフィールドだけ作っておいて、
Aさん、太郎君
Aさん、次郎君
Aさん、一郎君
というような感じでレコードに登録し、後からAさんの名前をキーにして友達情報を取り出すという方法を
思いついたんですが、これは一般的な方法なのでしょうか?
プログラマじゃないんで基本をまったく知りません
よろしくです。
DBの設計について
Re: DBの設計について
人によっては、アホ さんが書きました: 名前住所電話番号は基本一つだけなので困らないんですが、
・本名、ペンネーム、芸名
・本宅、別宅、別荘、妾宅
・固定電話、携帯電話
のように、複数持っていることがあるかもしれませんね。
はい。その考え方でよいと思います。アホ さんが書きました: 友達は複数いる可能性があります。
この場合この友達の情報は別のテーブルに格納するのがよいのでしょうか?
名前そのものよりは、アホ さんが書きました: その友達テーブルは、
名前、友達のフィールドだけ作っておいて、
AさんのID、太郎君
AさんのID、次郎君
AさんのID、一郎君
というような感じでレコードに登録し、後からAさんのID(名前ではなく)をキーにして友達情報を取り出す
のがいいのではないか、と思います。
複数のテーブルから情報を取り出す際のキー情報として、その人(例えばAさん)のIDを使う、
という方法が一般的ではないか、と個人的には思います。
まあ、私はデータベースに関しては全くの素人ですので、この回答をあまり鵜呑みにしない方がいいかもしれません。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
-
アホ
Re: DBの設計について
boxさんありがとうございます
名前はIDに代えたほうがよさそうですね。
他の方もこの方法が一般的な方法なのか回答願います。
もし違うなら一般的な方法を教えてください。
名前はIDに代えたほうがよさそうですね。
他の方もこの方法が一般的な方法なのか回答願います。
もし違うなら一般的な方法を教えてください。
Re: DBの設計について
こんにちは。ookamiです。
私もboxさんと同様で、IDを持たせるべきだと思います。
そうでないと同姓同名の人を区別できなくなってしまうので。
私もboxさんと同様で、IDを持たせるべきだと思います。
そうでないと同姓同名の人を区別できなくなってしまうので。
-
アホ
Re: DBの設計について
ookamiさんありがとうございます。
ookamiさんも友達の情報は別テーブルに登録して
IDをキーにして情報を取り出すという方法は別に問題ないと思ってるっていう認識でいいですよね?
ookamiさんも友達の情報は別テーブルに登録して
IDをキーにして情報を取り出すという方法は別に問題ないと思ってるっていう認識でいいですよね?
Re: DBの設計について
ですです。言葉足らずですみません^^;
具体的には以下のような感じです。
T_user -- ユーザーテーブル
ID name
-- ----
1 太郎
2 次郎
3 三郎
T_friend -- 友達テーブル
ID1 ID2
-- --
1 2 ←太郎と次郎が友達
2 3 ←次郎と三郎が友達
(太郎と三郎は友達じゃない)
具体的には以下のような感じです。
T_user -- ユーザーテーブル
ID name
-- ----
1 太郎
2 次郎
3 三郎
T_friend -- 友達テーブル
ID1 ID2
-- --
1 2 ←太郎と次郎が友達
2 3 ←次郎と三郎が友達
(太郎と三郎は友達じゃない)