- 締切済み
データベースの項目名 ID NO CDについて
sekihiroの回答
- sekihiro
- ベストアンサー率26% (5/19)
CD:意味のある数字(住所コードなど)につけま す。 NO:意味のない数字列(伝票番号など)につけま す。 ID:識別子という意味で使いますが、どちらかとい うと、処理上、内部的に作ったものに対して、 つけています。(レコード識別など) ご参考まで。
関連するQ&A
- テーブルの項目IDあなたならどう付ける?
テーブルの項目IDあなたならどう付ける? データベース(任意のDBMS)に以下の3項目があるとします。 名称(漢字) 名称(全角カタカナ) 名称(全角ひらがな) あなたなら、どういう項目IDにしますか? たとえばベタに書けば name_kanji name_zenkakukatakana name_zenkakuhiragana とか、 そもそも一意あれば何でもいいのですけど そういう話ではなく 1~3文字ぐらいで多くの人がピンとくる識別になる名称は何ですか?
- 締切済み
- その他(データベース)
- カラム名で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がつくカラム名は文字列 と直感的に分かりやすくなるだろうと思ったからなのですが、 みなさんはこのケース(そもそもこのカラム構成が正しいかは分かりませんが・・)の場合は、 どのようなカラム名を付けますか?
- 締切済み
- MySQL
- 最下層項目の前に集団項目名を付与するには?
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 以上、よろしくお願い致します。
- ベストアンサー
- Visual Basic
- データベースの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 です.
- ベストアンサー
- PostgreSQL
- エクセルでデータベースの作成ってできますか?
エクセルでデータベースの作成ができないか悩んでいます。 下記のような条件で考えてください。 (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との違い
- ベストアンサー
- Oracle