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

mysql:8521

From: "Jun Akita" <"Jun Akita" <j-akita@xxxxxxxxxx>>
Date: 17 Dec 2003 12:10:49 +0900
Subject: [mysql 08521] Re: MySQL でユニークキー

あきた@草加市です。

# 一通にまとめさせていただきました。
# 引用前後しますがご容赦ください。

> 数字に限定しなければ、その用途次第だと思います。

設計したときは掲示板だったのですが、それは

・掲示板が複数作成できる
・各掲示板の中にはスレッドが複数入る
・各スレッドの中には複数の書き込みが入る

というもので、平たく言えば 2ch のようなイメージです。

>  テーブルをきちんと設計すれば、AUTO_INCREMENTを使わなくてもPRIMARY KEY
> は作れますし、AUTO_INCREMENTを使うにしても他のフィールドと組み合わせれば
> (例えば、商品の受注に使うなら日付とか)上限は予想可能ですから。

「掲示板を作る」際に必須入力すべきデータとして メールアドレス や 氏名 を
入力させるようにしたとしても、「掲示板は複数作成できる」という仕様なので
入力させたデータをそのまま主キーにはできません。

また、日時と入力させたデータを組み合わせて主キーとしても、「ミリ秒単位で
日時が同じ」な時はユニークにならないですし。
(現実には同じ人がミリ秒単位で同じ時間に「掲示板」を複数作ることはないの
でしょうが; これも「何となく気持ちが悪い」と思う点です)

だから、AUTO_INCREMENT を利用すれば良いだろうという観点で設計しました。

# Oracle ではシーケンスがあるので「十分な量の」シーケンスと日時を
#組み合わせて主キーとしたりしています。

# そもそも、私の考え方が根本的に間違ってます?

> > 設計した時は AUTO_INCREMENT を利用したのですが、ディスクが先になくなるだ
> > ろう(そもそも bingint unsigned なレコード数にならないだろう)と予想はで
> > きても、何となく気持ちが悪い設計のような気がしたのですが、実際の所どうな
> > のでしょうか?
> 私が理解できなかったのでお聞きしたいのですが、
> 上記は、「溢れるかもしれないから気持ちが悪い」という意味でしょうか?

「溢れるかもしれないから気持ちが悪い」です。
「何となくすっきりしないな」程度の気分ですね。

---
あきた じゅん(j-akita@xxxxxxxxxx)



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

      8475 2003-12-11 10:08 ["tonegawa" <tonegawa] rowid のようなもの                      
      8476 2003-12-11 11:44 ┗[OHTSUKA Ko-hei <tech]                                       
      8477 2003-12-11 12:03  ┣[<ataka@xxxxxxxxxx>  ]                                     
      8479 2003-12-11 12:28  ┃┗[SUGAWARA Hajime <sug]                                   
      8480 2003-12-11 12:42  ┃ ┗[<ataka@xxxxxxxxxx>  ]                                 
      8516 2003-12-17 07:19  ┃  ┗[とみたまさひろ <tomm]                               
      8518 2003-12-17 11:23  ┃   ┣["Jun Akita" <j-akita] MySQL でユニークキー (Re: rowid のようなもの)
      8519 2003-12-17 11:39  ┃   ┃┣["Kawaji, Shinya" <ka]                           
->    8521 2003-12-17 12:10  ┃   ┃┃┗["Jun Akita" <j-akita] Re: MySQL でユニークキー
      8522 2003-12-17 12:35  ┃   ┃┃ ┣[SUGAWARA Hajime <sug]                       
      8526 2003-12-17 14:41  ┃   ┃┃ ┃┗["Jun Akita" <j-akita]                     
      8527 2003-12-17 18:34  ┃   ┃┃ ┃ ┣[ML account <ml@xxxxx]                   
      8530 2003-12-17 21:21  ┃   ┃┃ ┃ ┃┗["Jun Akita" <j-akita]                 
      8529 2003-12-17 20:30  ┃   ┃┃ ┃ ┗[SUGAWARA Hajime <sug]                   
      8523 2003-12-17 12:38  ┃   ┃┃ ┣["Kawaji, Shinya" <ka]                       
      8524 2003-12-17 12:38  ┃   ┃┃ ┣[ML account <ml@xxxxx]                       
      8525 2003-12-17 12:41  ┃   ┃┃ ┗[takuma watanabe <tak]                       
      8520 2003-12-17 11:40  ┃   ┃┗[SUGAWARA Hajime <sug]                           
      8532 2003-12-18 01:46  ┃   ┗["zen kishimoto" <zen] オープンソース DB の質は商用ソフトの「 6 倍優れる」
      8478 2003-12-11 12:28  ┗["tonegawa" <tonegawa]                                     
      8481 2003-12-11 12:43   ┗[SUGAWARA Hajime <sug]                                   
      8482 2003-12-11 14:04    ┗["tonegawa" <tonegawa]