• 締切済み

データベースの項目名 ID NO CDについて

sekihiroの回答

  • sekihiro
  • ベストアンサー率26% (5/19)
回答No.3

CD:意味のある数字(住所コードなど)につけま     す。 NO:意味のない数字列(伝票番号など)につけま    す。 ID:識別子という意味で使いますが、どちらかとい    うと、処理上、内部的に作ったものに対して、    つけています。(レコード識別など) ご参考まで。

関連するQ&A

  • テーブルの項目IDあなたならどう付ける?

    テーブルの項目IDあなたならどう付ける? データベース(任意のDBMS)に以下の3項目があるとします。 名称(漢字) 名称(全角カタカナ) 名称(全角ひらがな) あなたなら、どういう項目IDにしますか? たとえばベタに書けば name_kanji name_zenkakukatakana name_zenkakuhiragana とか、 そもそも一意あれば何でもいいのですけど そういう話ではなく 1~3文字ぐらいで多くの人がピンとくる識別になる名称は何ですか?

  • データベース設計

    データベースを使ったサイトを勉強しています。 始めにデータベースを作ろうと思って早速壁に当たりました。 必要なデータは 「ID,フラグ1,フラグ2,名前,住所,TEL,登録日,年代,趣味,メモ」。 IDは一意な番号、 フラグ1,フラグ2はYes/No、 年代は10個程度の決められた文字の中から1個、 趣味は10種類程度の決められた文字の中から複数。 このようなデータが入ったデータベースを作りたい場合、どのような構造にするのが良いのでしょうか。 アドバイス頂けたらと思います。

    • ベストアンサー
    • MySQL
  • カラム名でseqとidではどちらがふさわしいのでしょうか?

    mysql5.1.33を使用しています。 例えば、ユーザ情報を格納するuserテーブルがあって ユーザが決める半角英数字からなるIDを格納するuser_idカラムがあるとします。 そしてAuto Incrementなカラムも付け足すと、 [user] seq INT(11) NOT NULL AUTO_INCREMENT, user_id varchar(16) PRIMARY KEY (seq) UNIQUE KEY user_id (user_id) この場合はseqカラムが主キーになるわけですが、 一般的にはカラム名はseqではなくてidですよね? なんで自分はseqにしたかというと、 user_idカラムのidには文字(半角英字)のIDを、 seqは連番を意味づけさせたいと思いました。 つまり seqがつくカラム名は連番で idがつくカラム名は文字列 と直感的に分かりやすくなるだろうと思ったからなのですが、 みなさんはこのケース(そもそもこのカラム構成が正しいかは分かりませんが・・)の場合は、 どのようなカラム名を付けますか?

  • 最下層項目の前に集団項目名を付与するには?

    VBA初心者です。 以下のようにシートに文字列がある場合についてです。      A列  B列   C列        1行目  1   A     A         *集団項目* 2行目  2   A-1   A_A-1    *集団項目* 3行目  3   B     A_A-1_B   *最下層項目* 4行目  1   A1    A1         *集団項目* 5行目  3   B     A1_B       *最下層項目* 6行目  3   C     A1_C          *集団項目* 7行目  5   D     A1_C_D      *最下層項目* 8行目  3   E     A1_E        *最下層項目* ・やりたいこと  最下層項目の前に”集団項目名_”を付与したいです。C列はその結果を表しています。  VBAで実現したいです。 ・シートの初期状態  A列に階層を表す数字、B列に項目名が記載されています。C列は便宜上記載したものです。 ・階層の考え方  数値が大きくなるほど、その前の小さい数値に従属します。  例えば、3行目は2行目と1行目に従属し、2行目は1行目に従属します。 ・処理条件  ・A列が空白になるまで繰り返す。  ・A列が1の行から次に1が現れる1行前までが1つのグループという考え方です。   (1~3行目までが1つのグループ、4~8行目までがもう1つのグループ)   C列の結果には、必ずA列が1の項目名で始めます。 ・やっかいそうだと思われること  6、8行目は同じ階層ですが、6行目は7行目があるため集団項目、8行目は最下層項目です。 ・その他  例えばA列が1の場合はC列に、2の場合はD列に・・・というように列をずらして  後から結合してもよいです。  その場合、アンダーバーは不要です(後から付与できるため)  但し、1グループ内でC列には同じ文字列が設定されていることが前提となります。  (例)  A列 B列  C列 D列   E列   1  A    A    2  A-1  A  A-1   3  B    A  A-1  B 以上、よろしくお願い致します。

  • データベースのINT型項目にNULLはNG?

    以前、知り合いからデータベースのINT型の項目には出来ればNULLを許可しない(NOT NULL)方がいいと聞いたことがあるのですが、本当でしょうか? 現在不動産の物件データを登録するためのシステムを作成しており、 データベースの設計を行なっている最中なのですが、 例えば金額や面積など数字しか入力されない項目はINT型にしたいと考えています。 ※データベースはMySQLになります。 ただし、 物件データ登録時に数字項目に何も入力されなければ「NULL」、 0以上の数値を入力されている場合にはそのままその数値をデータベースに登録したいと考えています。 ※0を入力されている場合には「0」をそのまま入れたいです。 INT型の項目にはNULLを入れるのを避けた方がいい場合には、0を入れるような仕様に変更しようと考えているのですが、その辺のことについて教えて頂けると助かります。 ざっくりとした質問で申し訳ございませんが、宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • データーベース設計段階での質問です。

    データーベース設計段階での質問です。 管理しなければならないフラグ項目が100近くあり、そのフラグがよく検索対象になります。ただし、1レコードにつけられるフラグは10個までと決まっています。現在使用中のデータベースでは10個のカラムをつくっていて、そこに対象フラグのIDを列挙しています。 例えば A項目に対して1,20,34,56,78 B項目に対して3,6,11,15,42,78,89 のフラグがたっている場合、 name f0  f1  f2  f3  f4  f5  f6  f7  f8  f9 ------------------------------------------------------ A   1   20  34  56  78  null null null null null B   3   6   11  15  42  78  89  null null null となっています。他に日付などのカラムが5項目ほどあります。 このままだと検索等でややこしいことになるため テーブルを整理したいと思っています。 1.100個のboolean型のカラムを作る 2.ビットフラグ(ビットフィールド)のカラムを4つほど作って、検索時ビット演算する 3.項目名(ID)とフラグNo、だけの2カラムで構成した別テーブルを作ってjoinする 4.文字列としてIDを格納し、フルテキストインデックスをはる などがあると思うのですが、効率のいい設計がいまいちよくわかっていません。 上記の方法以外にも何かいい方法があると思います。 このような場合の、テーブル設計の方法を教えて下さい。

  • データベース:主キーが文字列の場合IDを振るべき?

    テーブルの主キーが文字列の場合、 その主キーの文字列を通し番号に置き換えて、 その文字列は別テーブルに移したほうが検索が速いですか? 例えば、テーブルが CREATE TABLE spec ( test_name VARCHAR(40) NOT NULL, upper_limit NUMERIC(17,7), lower_limit NUMERIC(17,7), PRIMARY KEY(test_name) ); で、40文字という長いテスト項目名の場合、 CREATE TABLE spec ( test_id INTEGER NOT NULL, upper_limit NUMERIC(17,7), lower_limit NUMERIC(17,7), PRIMARY KEY(test_id) ); と CREATE TABLE test ( test_id INTEGER NOT NULL, test_name VARCHAR(40) NOT NULL, PRIMARY KEY(test_id) ); という二つのテーブルに分けたほうが検索は速くなりますか? (もちろん、結合する時間も含めてです。) もし速くなるとしても、文字数が3文字など少ない場合は 通し番号に置き換えてもきっと効果は薄いですよね? 何文字以上の文字列なら通し番号に置き換えたほうが速いですか? 皆さんはどのように決めていますか?

  • IDの払い出し(文字列)

    WEB APでデータベースを勉強中のものです. ユーザを管理するID番号をデータベースの連番IDではなく,文字列のIDにしたいのですが,どうすればいいでしょうか.PHP等で作成する方法でもいいです. 文字列IDにすると特定されにくいかなって思っています. 例えば A100001 C100002 です.

  • エクセルでデータベースの作成ってできますか?

    エクセルでデータベースの作成ができないか悩んでいます。 下記のような条件で考えてください。 (1)会社の部署で使うものです。 (2)データベースにしたい項目は各自があるエクセル(以後、エクセルAとします)に書き込んだデータで、彼らが書き込むことにより、別に保存されたエクセル(データベースとなるエクセル=以後エクセルBとします)逐次増えていきます。 (3)各自がエクセルAのフォーマットはコピーして、共有のドライブに保存して使います。 (4)データベースに分類したい項目は以下の通りです。 A1、管理番号1(数字6桁)   B1、納め先(県名)   C1、客の名前   D1、機械の型式(アルファベットと数字)  E1、部品名 F1、部品型式   G1、製品番号 などです。これらの項目が部署の人達がエクセルAに入力することにより、逐次エクセルDに追加されていくようにしたいのです。 何か良い方法。参考となるホームペジなどがあれば教えてください。 私はまだマクロやアクセスは使ったことがないので、マクロやアクセス で解決できる場合はその参考となるホームペジなどがあれば教えてください。 みなさんに全て1から考えさせるような質問で申し訳ありません。 どうぞよろしくお願いします。

  • データベースの起動について

    現在、サーバーAの1台が起動しoracleのデータベースを 運用しています  そこに、サーバーBを起動し、oracleのデータベースの 試験運用を実施したいです 質問(1)  各サーバーが下記設定の場合、 サーバーBを起動することにより、サーバーAにて起動して いる本来のデータベースに問題が発生するでしょうか? 質問(2)  発生する場合、どのように回避すればいいので しょうか? ご存知の方、ご教示の程宜しくお願いします サーバーA(本運用)  OS:windowsNT4.0  Oracle:Oracle8i(8.1.7)  グローバルデータベース名:seisandb  SID:seisandb  接続文字列:seisandb  コンピュータ名:test01  IPaddress:192.168.1.10 サーバーB(試験運用)  OS:windowsNT4.0  Oracle:Oracle8i(8.1.7)  グローバルデータベース名:seisandb  SID:seisandb  接続文字列:seisandb  コンピュータ名:test02       ←Aとの違い  IPaddress:192.168.1.11    ←Aとの違い