• 締切済み

曜日を表す項目

DBに、受注曜日を保持しなければなりませんが みなさんはどのようなカラム構成にしますか? 1)受注曜日1(日曜日を表す)~受注曜日7(土曜日を表す)の7項目を設け、 それぞれにON/OFFをセットする 例:月・水・金が受注日の場合、受注曜日2、4、6は1、その他はZERO 2)受注曜日1(1つ目の受注曜日を表す)~受注曜日7の7項目を設け、 受注曜日1から順に、曜日を表す区分をセットする 例:月・水・金が受注日の場合、受注曜日1=1、受注曜日2=3、受注曜日3=5、 受注曜日4~7はNull 3)受注曜日を7桁で設け、日曜日から順に受注曜日にはBitを立てる 例:月・水・金が受注日の場合、受注曜日=0101010 4)受注曜日を7桁で設け、受注曜日を表す区分をセットする 例:月・水・金が受注日の場合、受注曜日=135 以前、別のシステムでは2)を使用したのですが、ちょっと不評だったような・・・ ご経験のある方、アドバイスお願いします。 ちなみにDBはOracle8.1.7、この受注曜日を追加しようとしているTableは 既にかなりの項目数があります。 くだらない質問ですみませんがよろしくお願いします。

みんなの回答

  • MarrowG
  • ベストアンサー率53% (41/76)
回答No.3

補足ありがとうございます。 なるほど、わかりました。 受注曜日にある程度パターンがあるようなら、これを別テーブルにしたらどうでしょう? で、受注パターンテーブルにはパターンID+曜日(7つ)のカラムを作成する。 曜日のカラムは、CHAR(1)で0 or 1とかにしておく。 商品マスターにはこのパターンIDを外部キーとして追加。 こんな感じでどうでしょう? 例えば月曜日に発注するものは発注パターンテーブルから月曜日がONになってるIDを検索、この発注パターンIDをキーに商品マスターを検索すれば一覧が作れます。 副照会使って書けば↓こんな感じですね。 SELECT 商品 FROM 商品MASTER WHERE 商品マスター.発注パターンID IN (  SELECT 発注パターンID FROM 発注パターンテーブル  WHERE 月曜日 = '1' ) 実際の業務での使われ方に則していない可能性もありますが、発注パターンがある程度絞れるなら、これでも充分なパフォーマンスが出ると思います。

  • MarrowG
  • ベストアンサー率53% (41/76)
回答No.2

何故、受注曜日を横持ちにするんでしょう? 一般的な受注処理なら受注毎に受注番号を振っていくと思うんですが。 で、受注番号をキーに1受注あたり受注日と曜日を1つずつ持てばいいはず。 それとも週単位で受注入力をしているから、といった理由でしょうか? あるいは受注ではなく配送曜日? いずれにしても、業務の流れと受注曜日を入力する理由が不明なので、明確な回答は難しいです。

nebiki
質問者

補足

すみません、補足します。 これは商品Masterで、ある商品の発注サイクル/受注サイクルを持つために 「受注曜日」「発注曜日」を設けることになっています。 この曜日を、自動発注処理・所要量計算に使用することも考えられます。 「受注曜日」はこのMasterの所有者がSellerである際に、Buyerから発注を受け付ける曜日を示します。 説明が下手で申し訳ありません。

  • iwaz
  • ベストアンサー率57% (8/14)
回答No.1

どういった内容のテーブルで受注曜日を利用するのかわかりませんが、 4つの選択肢から選ぶとなると (1)は、カラムが7つ必要なので既にかなりの項目数があるのでしたら おすすめできません。 (2)は、受注曜日カラムにデータが入っているかまず判定しないといけ ないのでちょっとつかいづらい気がします。 (3)(4)は、曜日を条件にして検索はしやすいと思います。 ということから(3)または(4)がいいような気がします。 また、他の方法でも可と言うのでしたら 「稼働日」という項目を追加して 1 = 月~金、2 = 月、水、金、3 = 火、木、土 の数値を登録しておき、1、2、3それぞれの意味を「稼働日マスタ」テーブルとして 作成しておけば数値の意味も分かり、結合して稼働日内容表示もできるかと思います。

関連するQ&A

  • 曜日ごとの合計と平均を求めたい

    曜日を認識し、その合計と平均を求めるにはどうせればいいですか? 例) 日 100 月 200 火 300 水 400 木 500 金 100 土 200 日 300 計 日の計400 平均200になるように よろしくお願いします。

  • クエリで曜日表示

    クエリにて曜日を出す式を入力する場合はどうすればいいでしょうか? クエリのデータとして年(2006などの4桁) 月 は別にフォームより入力しその該当するデータを抽出するようになっておりますので クエリのデータとして1日曜日~31日曜日というような感じで表記したいのですが weekdayを使うとシリアル値を入力することになると思うのですが持っているデータが2006 7 といったデータなのでそれは使えないと思うのですが曜日だけデータを取ることはできますでしょうか??

  • アクセスで曜日の並び順を変えたい

    ACCESS 2003を利用しています。 曜日を昇順でソートしたいのですが、テーブルでもクエリでも昇順でソートすると「火、金、月、水、土、日、木」と表示されます。 日曜日から、もしくは月曜日から並べたいのですが、どうすればよいのでしょうか? よろしくお願いいたします。

  • 曜日の順番

    曜日の順番は、何故、日、月、火、水、木、金、土?太陽系でなら、日、水、金、火、月、木、土になりますが、何故ですか?

  • 曜日別

    エクセルで例えば 月 25 火 30 水 19 木 18 金 25 土 35 日 19 月 31 火 30 水 15 木 18 金 91 土 35 日 19 という表があります この表から 曜日別に 月 合計 火 合計 水 合計 という風にするにはどうすればいいのでしょうか? 祝祭日も加えたいです あと、曜日別に並べ替えたいです 月 25   31 火 30   30 という風に 教えてください   

  • 「曜日」の名前、変えるとしたら?

    日、月、火、水、木、金、土曜日・・・そろそろ飽きました。 では、「新しい曜日名」を付けるとしたら、どんな名前がいいですか? 例えば、 幸曜日、灰曜日、慣曜日、中曜日、疲曜日、花曜日、嬉曜日・・・ 全部でなく、一つの曜日でも結構ですので、いいアイデア考えてください。

  • 曜日の表示

    日曜日の表示書式はaaaですよねぇ。 例えば日曜を赤字で表示するには、[赤][=1]aaa;aaaですよね。 他の曜日の色も変えたいのですが、曜日の表示書式を教えていただきたいのですが。 例として土曜を青表示の場合も教えてください。

  • 曜日は何故、日曜から数えるのですか?

    曜日は一般に「日、月、火・・・・土」の順番で数えます。 昔から疑問に思っていたのですが、最後に休息日がくるように「月、火、水・・日」の順番の方がしっくり感じるのですが、何故日曜から数えるのでしょうか?

  • Excelで曜日・数字が含まれた文字列を曜日別に分割したいです

    Excel関数で悩んでいます。 ひとつのセルに曜日と数字が入っていた場合に 数字別に曜日を分割する方法はあるでしょうか。 例)              月  火  水  木  金  土  日 月:500、水:800     500     800 月火:700、木:500    700  700 500 月:500、火水木金:700  500  700 700 700 700 上記のようにです。 条件のセルはひとつです。月~日は別セルです。(内容は数字になる) MINとかLENと使って数字を抜くことはできても複数の条件に対しての 数字がどうしても読み取れません。 よろしくお願いいたします。   

  • SQLで曜日のソートを月火水木金土日にしたい

    こんにちは。SQLiteのソートについてお教え頂けませんでしょうか。 フィールドに曜日が入っています。その曜日をソートをかけると下記のようになります。 土 日 月 木 水 火 金 欲しい並び順は下記です。 日 月 火 水 木 金 土 Or 月 火 水 木 金 土 日 CSVに出力したり、色々したいので曜日順になっていてもらった方が色々助かるのですが、何か良い方法はないでしょうか? 今考えているのは、C#のフォームからSQL文を発行してSQLiteに問い合わせ。結果をC#側で受け取って、CSVに出力という事を考えています。