[pgsql-jp: 27074] Re: スケジュールテーブルの設計
NAO★
linux @ nao-star.com
2002年 8月 19日 (月) 15:25:31 JST
NAO★といいます。
dd01〜dd31までは別のテーブルの同じ列(処理コード番号)を参照していると思
いますがこれを別々の列にする必要はあるのでしょうか?
あるコード番号がいつの日付で使われているか調べるためにはSELECTの時、
WHERE句にdd01〜dd31をすべて列挙するハメになりますよ。
そうではなく、単純に
create table my_calendar (
cdate date,
code smallint,
primary key (cdate)
);
とかの方がスッキリしていると思いますが。
また別解として
create table my_calendar (
yy smallint,
mm smallint,
code string,
primary key (cdate)
);
としておいて
codeの中身を
"ダミー\n
01日のコード\n
02日のコード\n
:
30日のコード\n
31日のコード"
という1行1コードの文字列で格納し、PHPにてsplitをつかって配列にすると
いうのもありでしょうか?
codes = split("\n", str_codes);
codes[0] --ダミー
codes[1] --1日のコード
:
codes[30] --30日のコード
codes[31] --31日のコード
# PostgreSQLは列に配列も使えますが…
--
NAO★<net @ nao-star.com>
pgsql-jp メーリングリストの案内