Access2000で社員マスタを作成しているのですが、氏名を「氏」と「名」に
分けて作ったほうがいいのか「氏名」を1つのフィールドにしようか悩んでいます。データベース設計経験のある方、この場合どうすればいいのか是非教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

■氏と名が別フィールド


長所:後で応用がききやすい。(やっぱり同一フィールドにしたいと思った時も変更可能。)
短所:フィールドが増える(そのための手間も増える)。

■氏と名が同じフィールド
長所:フィールドが一つでいい。
短所:入力時に姓名をスペースで区切るなどのルールを作った場合、順守するのが大変。(そのため別フィールドに変更しようと思っても難しい。)

後は、どのような検索をするかも考えてみてはいかがでしょうか。
    • good
    • 0

こんにちは



「氏」と「名」を別々に使う必要があるかないかで決まってくると思います。
または、今後別々に使う必要が出てくる予定があるかでも。

もし、別々にする必要が無いのであれば出来るだけ簡単にしたいので「氏名」1つのフィールドにした方がいいと思います。

後は、氏名を表示または印刷する時に、「氏」と「名」の間にスペースを入れたいかどうかも関係すると思います。

※ただし、1つのフィールドであっても初めからスペース付きで入力しておけば可能ですが。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qデータベースのフィールドそのものを自由に定義できるテーブル設計とは

はじめまして。
この度、ユーザからの入力をデータベースに保存する複数アンケートフォームを作成しようとしています。
その際、各アンケートフォームごとに入力項目名、入力タイプ好きな数だけ管理側から設定できる仕様です。
このような通常フィールド(列)となる部分の名称やデータタイプを自由に設定できるデータベース設計がうまくいきません。現場ではどのようにしてやられてるのでしょうか?
私が思いつく限りでは
----------------------
アンケートフォームテーブル
・アンケートフォーム番号(PK)
・アンケート名称
----------------------
項目雛型テーブル
・項目番号(PK)
・データタイプ
----------------------
項目実体
・アンケートフォーム番号(PK)
・項目番号(PK)
・項目名称
・表示状態
----------------------

上記のような構造にした場合、ユーザ毎のアンケートデータを保存するテーブル構造が思いつきません。
作成できる項目数の限度を30に決めて、予め30フィールド、テキスト型のようなものを用意しておくのも狭い利用範囲になる気がしますが・・・

アドバイスをお願いします。

はじめまして。
この度、ユーザからの入力をデータベースに保存する複数アンケートフォームを作成しようとしています。
その際、各アンケートフォームごとに入力項目名、入力タイプ好きな数だけ管理側から設定できる仕様です。
このような通常フィールド(列)となる部分の名称やデータタイプを自由に設定できるデータベース設計がうまくいきません。現場ではどのようにしてやられてるのでしょうか?
私が思いつく限りでは
----------------------
アンケートフォームテーブル
・アンケートフォーム番号(P...続きを読む

Aベストアンサー

項目名などの情報の定義情報もDBに保存するということですね。

定義情報を保存するテーブルと、その定義に従って保存されるデータを保存するテーブルを作るのが常套手段です。

今回の場合は、アンケートフォームと項目の2階層あるため、私なら

----------------------
アンケートフォーム定義テーブル
・アンケートフォーム定義番号(PK)
・アンケートフォーム名称
----------------------
項目定義テーブル
・アンケートフォーム定義番号(PK)
・項目定義番号(PK)
・項目名称
・データタイプ
・表示状態
----------------------
アンケートフォームデータテーブル
・ユーザ番号(PK)
・アンケートフォーム定義番号(PK)
・登録日時
----------------------
項目データテーブル
・ユーザ番号(PK)
・アンケートフォーム定義番号(PK)
・項目定義番号(PK)
・入力値

という感じです。
ここで問題になるの入力値のデータ型ですが、
2通り考えられます。
1、文字列型で定義しておき、数値型や日付型の場合は文字列型に変換して登録する。
2、文字列型、数値型、日付型の3つの列を用意し、定義によって適宜登録する列を変更する。

読み出し(SELECT)の場合は上記の逆となります。どちらかというと1の方が楽だと思います。

項目名などの情報の定義情報もDBに保存するということですね。

定義情報を保存するテーブルと、その定義に従って保存されるデータを保存するテーブルを作るのが常套手段です。

今回の場合は、アンケートフォームと項目の2階層あるため、私なら

----------------------
アンケートフォーム定義テーブル
・アンケートフォーム定義番号(PK)
・アンケートフォーム名称
----------------------
項目定義テーブル
・アンケートフォーム定義番号(PK)
・項目定義番号(PK)
・項目名称
・データ...続きを読む

Qマスタテーブル使用時のデータテーブル設計について

皆様こんにちは、失礼致します。

現在、ASP.NET+SQLServerで業務用帳票アプリの開発を行っています。
DBを使用した開発は初めてで、テーブルの設計手法について
経験者様のご指導を頂きたく、宜しくお願い致します。

まず、マスタテーブルは以下とします。

【顧客マスタテーブル】
・顧客マスタID
・顧客名
・顧客名(英語名)

帳票データ入力画面で、顧客マスタ検索ボタンから別画面を起動し、
そこで選択した顧客名を帳票データ入力画面に反映させます。

そして、帳票データ入力画面のデータをデータテーブルへ格納する
のですが、その際には顧客名そのものか、マスタIDのどちらを
格納するのが好ましいのでしょうか?

要件としては以下を満たす必要があります。

1.帳票データ入力画面で格納したデータは
  別の帳票データ入力画面でも使い回す。

2.帳票印刷時にのみ、顧客名を対応する顧客名(英語名)で
  出力する。

3.データテーブルに格納されたデータは後々参照して使い回す。

顧客名で格納しておけば使い回しは楽ですが、2.のケースで
顧客名から顧客名(英語名)をselectした場合に、顧客名は一意でも
顧客名(英語名)が一意ではなかった場合に問題が起きます。

マスタIDで格納しておけば、対応する顧客名(英語名)は検索
できますが、マスタを修正した場合には3.で過去データを
参照する時に修正後のマスタ情報が表示されてしまいます。

結論としましては、両方とも格納しておくのが好ましいのでは、
と考えておりますが、メンテナンス性の観点から、データテーブルの
カラム数はできるだけ少なくしたいとも考えております。

周囲に経験者がいなくて困っております。
ご指導頂けますと幸いです。


以上、宜しくお願い致します。

皆様こんにちは、失礼致します。

現在、ASP.NET+SQLServerで業務用帳票アプリの開発を行っています。
DBを使用した開発は初めてで、テーブルの設計手法について
経験者様のご指導を頂きたく、宜しくお願い致します。

まず、マスタテーブルは以下とします。

【顧客マスタテーブル】
・顧客マスタID
・顧客名
・顧客名(英語名)

帳票データ入力画面で、顧客マスタ検索ボタンから別画面を起動し、
そこで選択した顧客名を帳票データ入力画面に反映させます。

そして、帳票データ入力画面のデー...続きを読む

Aベストアンサー

データテーブルへ格納するのは(一般的には)顧客IDでしょうね(一意ですよね)。

>顧客名から顧客名(英語名)をselectした場合に、顧客名は一意でも
>顧客名(英語名)が一意ではなかった場合に問題が起きます。

意味がよくわからないのですが

>マスタを修正した場合には3.で過去データを
>参照する時に修正後のマスタ情報が表示されてしまいます。

顧客マスタの履歴管理をおこなうのであれば、

・顧客ID(PK)
・適用開始年月日(PK)
・適用終了年月日
・顧客名
・顧客名(英語名)

QACCESSでクエリ作成時複数のフィールドを同じマスタ項目から抽出する方法

ACCESSでクエリを作成しています。テーブルは”売上明細”と”社員マスタ”があります。売上明細には”担当者CD”と”加工者CD”というフィールドがあって、それぞれのフィールドが、同じ社員マスタの”社員CD”をキーに”社員名”を抽出したいのですが、「あいまいな外部結合が含まれているので、SQLステートメントを実行できません。第一次結合を実行する分割クエリを作成し、SQLステートメントにそのクエリを含めてください」とメッセージが出ます。どこにどのように設定すればいいのでしょうか?優先順位は特にありませんが、最初に設定されている担当者CDを第一次結合とする場合どうすればいいのでしょうか?この第一次・第二次はどのような意味があるのでしょうか?まだVBAは手付かずで、初心者です!これから学習しようとしているところです。よろしくお願いいたします。

Aベストアンサー

ひとつのテーブルの異なるフィールドが同じテーブルを参照しているわけですね
こういう場合はひとつのテーブルを2つのフィールドに結合するのではなく
同じテーブルを別の名前で結合します

クエリデザインビューでの操作だと、社員マスタを2回クエリデザインビューに取り込み
(2つ目は異なる名前で取り込まれます)
担当者と、加工者に別々に結合します

QMicrosoft ACCESS フィールドの設計

Microsoft Accessのテーブル「フィールド」に関する質問です。
以下の場合に、テーブルの「フィールド」をどのように作成したらよろしいのでしょうか、ご教示ください。

作業のイメージをはじめに設定します。ある件で市場調査を行いましたが、設問が下記のとおり、一部に複数選択可能な回答欄があります。
設問1:あなたのすきな色を次の中から「ひとつだけ」選択してください。
(1)赤 (2)青 (3)黄
設問2:あなたの好きな物を次の中から「いくつでも」選択してください。
(1)りんご (2)みかん (3)ばなな (4)すいか (5)かき

フィールド名   データ型   説明
ID               主キー
Q1        長整数型   テーブル「Color」のID(1赤 2青 3黄)
Q2        ?????
*このQ2は、やはり複数選択可能な数だけ(この場合、5点)フィールドを作成し、それぞれのデータ型をYes/No型とするのでしょうか?それとも、フィールは一つとして、好きな場合を1として、それ以外を0として表現する方法、例えば、(1)りんごと(5)かきがスキと答えた場合、10001とするほうがよいのでしょうか?
*なお、入力した結果により、設問2についてそれぞれに件数をカウントすることを考えています。

Microsoft Accessのテーブル「フィールド」に関する質問です。
以下の場合に、テーブルの「フィールド」をどのように作成したらよろしいのでしょうか、ご教示ください。

作業のイメージをはじめに設定します。ある件で市場調査を行いましたが、設問が下記のとおり、一部に複数選択可能な回答欄があります。
設問1:あなたのすきな色を次の中から「ひとつだけ」選択してください。
(1)赤 (2)青 (3)黄
設問2:あなたの好きな物を次の中から「いくつでも」選択してください。
(1)りんご (...続きを読む

Aベストアンサー

アンケートの集計はやりたくない事のひとつ・・

こちらは参考になりませんか?
ビットマスクで今日からあなたも収納名人
http://x7net.com/~access/AcTipsBitMask.html

Qデータベース設計手法について

データ重複を避けるためのPK以外に、シーケンシャルなカラム(id)にindexを貼ってFKとしようとしています。
このような設計手法って一般的でしょうか?呼び名とかあるのでしょうか?

例)
id(index)
customer_id(pk)
member_id(pk)

Aベストアンサー

通常はidの方をPrimary Keyにして(custmer_id,member_id)でunique indexを作成します。このような場合は、シーケンシャルに符番するidを人工キーと呼びます。
なぜ、このような作り方をするかというと、primary keyは変化しない項目の方が望ましいからです。


人気Q&Aランキング

おすすめ情報