ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:sweepea 選択項目テーブルには、順序カラムが必要ですか?
困り度:
  • 困っています
例えば、都道府県テーブルを作るとします。

id INT
name TEXT

で、県名のプルダウンメニューの表示には、
SELECT name FROM prefecture ORDER BY id;
等とすればよいでしょうが、
「北海道からでなく東京から表示してくれ」
とたのまれた場合を考えれば、id とは別途、順序カラムを
もっておいた方がよいのでしょうか?

何か、いい方法があれば、教えてください。
質問投稿日時:08/04/12 19:23
質問番号:3943352
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

良回答20pt

回答者:inadomez 画面の選択項目に使用するコード系は、個別にテーブルを作成せずに、
ひとつのテーブルにまとめたほうがいいかもしれませんね。

以下、テーブルレイアウトの例です。

コード(PK)
コード種類(PK)・・・都道府県、血液型、性別など
表示順
表示名
表示名略称
コードの説明
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:08/04/14 09:50
回答番号:No.3
この回答へのお礼ありがとうございます。

> 表示名略称
は、よく必要になりますね。

そもそも、外部キーの参照元としての id 値を表示順にも代用しておきながら、どうにかならないのか? という発想自体が、RDBの根本から外れてしまっているようでした。

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

回答

良回答10pt

回答者:yambejp >「北海道からでなく東京から表示してくれ」
>とたのまれた場合を考えれば

あとからソート用テーブルをつくって外部結合すれば済むので
要望があるまではとくに今のままで問題ないはずです。

※経験上、中国地方と四国の順番を入れ替えたりしたことはあります。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/04/13 23:46
回答番号:No.2
この回答へのお礼ありがとうございます。

> ソート用テーブルをつくって外部結合
この発想は思いつきませんでした。

ただ、県名だけでなく、性別や、各種選択項目を表示するためのメソッドを一つにまとめた場合、
if ($table == 'prefecture') {
  JOIN句生成
みたいなのが必要になってきまね。

ANo.1 さんとの回答と比較して、どちらがいいか、検討したいと思います。

あ、ANo.1 さんと yambejp さんとの間をとって、
表示順を変えてくれと言われたときに初めて順序カラムを ADD COLUMN するという方法もありますね。

回答

 

回答者:inadomez 私の経験上では、県名表示で順序変更を依頼されたことはありませんが、
もし、そのような依頼が想定されるのであれば、
表示順序を格納するカラムを持っておいたほうがよさそうですね。
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:08/04/13 09:28
回答番号:No.1
この回答へのお礼ありがとうございます。やはり表示順カラムが必要ですかね。

例えが、ちょっと悪かったかもしれませんが、県名だけでなく、
お気に入りのカテゴリーや、性別(ほぼ男性が先だと思いますが)や
血液型(占いサイト等)の表示順等、全ての選択項目に
共通の問題ですね。

ありがとうございました。
 
最新から表示回答順に表示良回答のみ表示