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

mysql:1432

From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Mon, 27 Dec 1999 13:23:00 +0900
Subject: [mysql 01432] Re: 該当件数を 2 つのテーブルから参照し表示する方法

とみたです。

At Mon, 27 Dec 1999 12:25:54 +0900,
Isamu Narimatsu <isamu@xxxxxxxxxx> wrote:

> MySQLを使用する場合、複数のテーブルに分ける場合はどのような時が望ましいので
> しょうか?

テーブルの正規化ってやつですね。

> 私が複数テーブルに分けたのは、PV と CLICK では、性質が違う、つまり、PVはバ
> ナーを表示させる記録、CLICKはバナーをクリックさせる記録となるからです。
> 
> データベースの設計は記録の対象となる性質が違った場合、テーブルを分けた方が望
> ましいということを聞いたことがあります。

性質というよりフィールド間の依存関係だと思います。今回の場合はたしかに分
けた方がすっきりしますね。

> そこで、テーブルを2つ作成したのですが、PV数 と CLICK数を カウントする場合は
> 一つのテーブルに記憶したほうがSQL文が書きやすいということがわかりました。
> 
> となってくると、性質が違うからといってテーブルを2つに分けても、運用でSQL文を
> 難しく組む必要があったりで、必ずしもテーブルを複数に分ける必要がないというこ
> ともわかりました。

非正規化ってやつですね :-)

> そこで、みなさんは一般的には、MySQLを使用して、テーブル作成を1つにしたり、複
> 数にしたりする場合はどのような考え方で選択されておられるのか、ご意見を頂けた
> らと思います。

私はあまり難しく考えずに、とりあえず1つのテーブルにしてしまって、それか
ら冗長性や繰り返しを排除するためにテーブルを分割します。分割しなくてもい
い場合はそのまんま。

今回のような場合は、私だったら2つのテーブルにわけておいて、何も考えずに 
bpvlog, bclicklog テーブルそれぞれについて select 文を実行します。

	select count(*) from bpvlog;
	select count(*) from bclicklog;

ま、どうしても1回の select でやらなきゃいけない事情があるなら別ですが…。

--
とみたまさひろ <tommy@xxxxxxxxxx>

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

      1431 1999-12-27 12:25 ["Isamu Narimatsu" <i] Re: 該当件数を 2  つのテーブルから参照し表示する方法
->    1432 1999-12-27 13:23 ┣[とみたまさひろ <tomm]                                       
      1435 1999-12-28 21:59 ┗[Takanori Tobe <datab]                                       
      1436 1999-12-28 22:06  ┗[Takanori Tobe <datab]