こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

自動採番について

お世話になります。
データベースのシーケンスによるシリアル型について質問があります。

例えば下記のような商品テーブルがあるとします。
・商品コード
・商品名
・価格
・備考
※商品コードは重複しない値(一意)を格納。

このようなマスタを作成する際にシーケンスによるシリアル型による自動採番のフィールドを指定した方がいいのでしょうか。またシーケンスによるシリアル型をどのような場合に使うのが一般的なのでしょうか。
大変、お手数をお掛けしますが説明していただけませんでしょうか。
くだらない質問ですみませんが宜しくお願いします。

投稿日時 - 2016-07-29 08:22:28

QNo.9208082

すぐに回答ほしいです

質問者が選んだベストアンサー

例示されている商品テーブルの場合、商品コードが一意な値と言う事なのでシリアル型のカラムは不要でしょう。

一般的にシーケンスを使ったシリアル値は、1つのレコードを容易に特定する一意な情報が無い場合に使用します。
集合としてデータを抽出する場合はいいですが、1つのレコードを特定する一意な情報が無いと特定のレコードを更新したり削除したりと言った操作が煩雑になってしまいます。

例えば、顧客からの注文情報を扱う場合、注文データテーブルには注文1件毎の注文番号や顧客情報、注文日等の情報を記録し、注文明細テーブルに注文データテーブルのキーと商品コード、注文数、販売単価等を記録すると思います。
注文データテーブルでは注文番号をシリアル型にすると、人が採番する事なく自動的にユニーク値を割り当てられて重複した値を割り当てると言ったミスを無くせますし、注文明細テーブルだと明細一件毎にレコードを特定するキーが作れて、明細の内容を修正したい時などはDB操作がしやすくなり、誤ったデータ修正が発生しなくなります。

投稿日時 - 2016-07-29 09:36:07

お礼

コメントありがとうございます。
なるほど。説明ありがとうございました。
では、失礼します。

投稿日時 - 2016-07-29 16:49:09

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

Microsoft Access & Data Bace

投稿日時 - 2016-07-29 09:48:16

お礼

???

投稿日時 - 2016-07-29 16:47:20

ANo.1

例えば、登録してある商品在庫を出すとき、日付も商品コードも同じものがあって
別にどちらから出してもいいのだけど、画面のプログラム上どちらかを先に表示し、
もう一方は次の画面とした時、次画面をどこから表示したらよいかでプログラム
できないのですよ。何は一意に決まっているコードがあればいいのになぁ、と
いう時くらいですね。

投稿日時 - 2016-07-29 08:31:37

お礼

コメントありがとうございます。

投稿日時 - 2016-07-29 16:48:03

あなたにオススメの質問