[前][次][番号順一覧][スレッド一覧]

mysql:12911

From: "honma" <"honma" <honma@xxxxxxxxxx>>
Date: Tue, 4 Apr 2006 06:07:38 +0900
Subject: [mysql 12911] Re: データベースのフィールド名について

橋本さん、ありがとうございます。m(__)m

> プライマリーキーのカラム名については、PHP側から、自動的に
> 予測できる名前にした方がいいです。
> 全て「id」のような名前にするのは一つの方法ですし、
> 「テーブル名_id」のような形で統一するのもいいですね。
「テーブル名_id」に変更してみました。結構いい感じです。
今まで不具合を追いにくかったのですがすごく簡単になりました。
プログラムも各idを出力するだけで方向性が見えてくるようにな
りした。
ありがとうございました。

> # さらに、個人的な意見で言えば、「id」に統一してしまう方が、
> # なにかと便利だとは思います。
気になる一言ですが、私も修行を積んでこの一言が分かるよう
になれるように勉強します。

ありがとうございました。

Honma




----- Original Message ----- 
From: "Kenta Hashimoto" <kem@xxxxxxxxxx>
To: <ml@xxxxxxxxxx>
Sent: Monday, April 03, 2006 12:03 PM
Subject: [mysql 12907] Re: データベースのフィールド名について


橋本です。

カラム名は、人、組織によって、ポリシー、コーディングスタンダードが
変わってくるものだと思います。

その前提の上で、経験的に、次のような感覚を持っています。

プライマリーキーのカラム名については、PHP側から、自動的に
予測できる名前にした方がいいです。
再利用可能な、DBを扱うモジュールを作りやすくなるためです。

全て「id」のような名前にするのは一つの方法ですし、
「テーブル名_id」のような形で統一するのもいいですね。

予測できないような名前にした場合、設定ファイルや、対応表が
どうしても必要になり、手間が増えてしまいます。
つまり、「customer」というテーブルがあったとして、
プライマリーキーのカラム名は、「csm_id」などにはしないほうが
無難です。するなら、「customer_id」の方が良いですね。

# さらに、個人的な意見で言えば、「id」に統一してしまう方が、
# なにかと便利だとは思います。


06/04/01 に honma<honma@xxxxxxxxxx> さんは書きました:
> いつも拝見させていただきありがとうございます。
>
> ちょっと、変な質問で申し訳ありませんが教えてください。
> フィールド名についてなんですが、今の私のつけ方に疑問
> を感じまして投稿させていただきます。
> 環境はOS XP-Pro MySql4.1.13 PHP5 Apache1.3です。
>
> 以下のような感じでテーブルを作成しました。
> ここで疑問ですがidはすべてidにしたのですが、それぞれ
> 違う名前のほうがいいのでしょうか?
> たとえば、csm_id ko_id syain_idなどです。
> そうした場合、他のフィールドもすべてユニークなほうが
> 使いやすいのでしょうか?
> たとえば csm_name ko_name syain_name などです。
> 初歩的な質問で申し訳ありませんがよろしくお願いします。
>
>     #customer
>      $query = "CREATE TABLE " . TABLE_NAME_KOKYAKU . "("
>         . "id INT NOT NULL UNIQUE PRIMARY KEY,"
>         . "name VARCHAR(20),"
>         . "kana VARCHAR(20),"
>         . "keisho VARCHAR(6),"
>         . "birthday  DATE,"
>         . "ox  VARCHAR(4),"
>         . "yubin VARCHAR(20),"
>         . "jusho1 VARCHAR(64),"
>         . "jusho2 VARCHAR(64),"
>         . "tel VARCHAR(20),"
>         . "fax VARCHAR(20),"
>         . "keitai VARCHAR(20),"
>         . "mail VARCHAR(45),"
>         . "shokushu INT(2),"
>         . "group_id INT,"
>         . "bikou VARCHAR(256),"
>         . "shoukyo  INT(1) Default 0,"
>         . "modify DATETIME)";
>      $result = mysql_query($query , $db);
>
>     #子
>      $query = "CREATE TABLE " . TABLE_NAME_KO . "("
>             . "id INT NOT NULL UNIQUE AUTO_INCREMENT PRIMARY KEY,"
>         . "name  VARCHAR(32),"
>         . "kana  VARCHAR(32),"
>         . "birthday  DATE,"
>         . "ox  VARCHAR(4),"
>         . "csm_id INT,"
>         . "bikou  VARCHAR(128),"
>         . "shoukyo  INT(1) Default 0,"
>         . "modify DATETIME)";
>      $result = mysql_query($query , $db);
>
>     #販売履歴
>      $query = "CREATE TABLE " . TABLE_NAME_HANBAI . "("
>             . "id INT NOT NULL AUTO_INCREMENT UNIQUE PRIMARY KEY,"
>         . "order_date DATE,"
>         . "csm_id  INT,"
>         . "ko_id  INT,"
>         . "shohin_id INT,"
>         . "shiire_tanka INT,"
>         . "syanai_tanka INT,"
>         . "hanbai_tanka INT,"
>         . "denpyo_no INT,"
>         . "nouhin DATE,"
>         . "shoukyo  INT(1) Default 0,"
>         . "modify DATETIME)";
>      $result = mysql_query($query , $db);
>
>     #フォロー履歴
>      $query = "CREATE TABLE " . TABLE_NAME_FOLLOW . "("
>             . "id INT NOT NULL AUTO_INCREMENT UNIQUE PRIMARY KEY,"
>         . "follow_date DATE,"
>         . "csm_id  INT,"
>         . "tanto_id  INT,"
>         . "shubetsu_id INT,"
>         . "naiyou VARCHAR(200),"
>         . "bikou VARCHAR(32),"
>         . "shoukyo  INT(1) Default 0,"
>         . "modify DATETIME)";
>      $result = mysql_query($query , $db);
>
>     #フォロー種別
>      $query = "CREATE TABLE " . TABLE_NAME_FOLLOW_SHUBETSU . "("
>         . "id INT NOT NULL UNIQUE PRIMARY KEY,"
>         . "name  VARCHAR(50),"
>         . "hosoku  VARCHAR(20),"
>         . "bikou  VARCHAR(50),"
>         . "shoukyo  INT(1) Default 0,"
>         . "modify DATETIME)";
>      $result = mysql_query($query , $db);
>
> 以下省略-----
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>



[前][次][番号順一覧][スレッド一覧]

     12900 2006-04-01 09:54 ["honma" <honma@xxxxx] データベースのフィールド名について      
     12907 2006-04-03 12:03 ┗["Kenta Hashimoto" <k]                                       
->   12911 2006-04-04 06:07  ┗["honma" <honma@xxxxx]