1

Access 列に数値を格納し、意味のある文字列を各値に関連付けるにはどうすればよいですか?

次のように、各値の意味を一度に定義し、それらの意味をデータシート ビューに表示できる場合、生の数値を見たくないからです。

ID  Name      Type

1   Jack      1 (Friend)
2   Jill      1 (Friend)
3   Diago     2 (Enemy)
4   Sally     3 (Colleague)
4

6 に答える 6

3

おそらく、少なくとも2つの異なるテーブルが必要です。1つは人のIDと名前を持ち、もう1つはその人との関係のタイプと説明を含むテーブルです。

人が複数の関係を持つことができる場合(たとえば、友人と同僚)、その人のID用の1つの列と、関係タイプのID用の別の列を持つ3番目のテーブルがあります。人が1つのタイプの関係しか持てない場合は、その人のタイプのIDを使用してPersonテーブルに3番目の列を追加するだけです。

テーブルからデータを取得するには、SQLステートメントでJOINを使用して、それぞれに指定したIDですべてのテーブルの行を結合します。

一般的に、ここにリレーショナルデータベースが何であるかを説明するリンクがあります。これは、Accessで主キーと外部キーの制約を使用してテーブル間の関係を作成する方法について説明しているMicrosoftOfficeのリンクです。ステップバイステップの説明とかなり関連性のある例(学生と成績)を含む別の例を次に示します。

于 2009-10-15T13:37:41.853 に答える
2

タイプに魔法数を使用するのはなぜですか?言葉だけを使ってみませんか?

解決策1-単語を使用するだけで、魔法の数字は使用しないでください。

解決策2-マジックナンバーを単語にマップするテーブルを提供し、結合を使用します。

于 2009-10-15T13:38:06.173 に答える
1

クエリでは、マジックナンバーの文字列値を定義する別のテーブルとの結合が必要になります。

SELECT ID, Name, Type_Text AS Type
FROM MyTable
INNER JOIN MyLookupTable
ON MyTable.Type = MyLookupTable.Type
于 2009-10-15T13:39:12.397 に答える
1

私はあなたが機能を探していると思いますSWITCH...

SELECT Name,
       SWITCH(Type=1, "Friend", Type=2, "Enemy", Type=3, "Colleague") as Expr1
FROM MyTable

より詳しい情報

于 2009-10-15T14:13:47.570 に答える
0

例 1

ISO 5218 セックス コード

数が少ない (可能な値は 4 つだけ)。安定していると見なされます (新しい性別が発見される可能性はあまりなく、なぜ基準を変更するのですか?) したがって、SWITCH()ステートメントは適切です:

SELECT SWITCH(
              C1.sex_code = 9, 'corporate body', 
              C1.sex_code = 1, 'male', 
              C1.sex_code = 2, 'female', 
              TRUE, '(not known)'
             ) AS customer_person_type, ...
  FROM Customers AS C1 ...

例 2

ISO 4217 通貨コード

比較的多い(約175)。流動的であると見なされます (1 つの手がかりは、メンテナンスを担当する公的機関があることです)。したがって、これらはベース テーブルに最も適しています。

CREATE TABLE Currencies
(
 currency_code CHAR(3) NOT NULL, 
    CHECK (currency_code NOT ALIKE '%[!A-Z]%'), 
 currency_name VARCHAR(30) NOT NULL
);

INSERT INTO Currencies VALUES ('AED', 'United Arab Emirates dirham');
INSERT INTO Currencies VALUES ('AFN', 'Afghani');
INSERT INTO Currencies VALUES ('ALL', 'Lek');
INSERT INTO Currencies VALUES ...

では、セックスと通貨のどちらがあなたに最適ですか? ;)

于 2009-10-16T08:34:50.570 に答える
0

別のテーブルを作成する必要があるように思えます

  • : タイプ
  • : タイプ ID、説明
于 2009-10-15T13:45:49.170 に答える