• 締切済み

テキスト項目255ケタのメリット・デメリット

業務系のシステムを構築しております。 ある顧客で、フロントエンドをWEBシステムで構築し、業務システムへ連携してほしいとの依頼が来ました。 フロントエンドは別の会社が作っており、そこから出てきたインターフェースの仕様がテキスト項目はコード類も含めすべて255桁になっておりました。 テキスト項目をすべて255ケタにするメリットはなんなのでしょうか? デメリットとしては、後々DB解析する際などに処理が非効率になるのではないかと思っているのですが、他にもあれば教えていただければと思います。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>DBはmySQL それはおそらくMySQLの仕様が4.0まではcharやvarcharなどいわゆる文字列型の カラムの文字数上限が255バイトとなっていたからでしょう 現在のMySQL5系は拡張されて65535文字まで格納可能なのであまり255桁に こだわる必要はないかもしれません。 ただしインデックスの特徴で極端にながい文字列にインデックスを作成すると 無駄がおおく、肥大化による弊害もでてくるため、255文字程度を上限にしておいた方が 運用上効率的かもしれません (たいていのものの名称は200文字程度におさまることですし)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

たぶん、ですが。 MS-ACCESSがからんでるかも。テキスト型のデフォルトが255桁です。 メリットは、MS-ACCESSを用いたEUCツールを作りやすい。 デメリットは、255「桁」だから255「バイト」では無いこと。 「半角・全角取り混ぜての255文字」なので、他のDBMSで定義するときに 注意しないと桁不足・桁あふれが生じる。 255「桁」の意図を十分確認しておく必要があると思います。

kikkourock
質問者

補足

DBはmySQLだそうです。 桁あふれの話ですが、人名の姓で255ケタ、名で255ケタなので、あふれようがないという感じです。 住所で255ケタ、電話番号で255ケタ...という感じで非常に非効率に思えたもので。 まぁ、データ定義は可変長なので、限られたもので来るとは思うのですが。 後々デメリットとかはないのでしょうか...

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

もしかしたら、大昔からあるシステムを引き継いでいるだけではないでしょうか。 文字数を表わす1Byte(8bit) + 255Byte分の領域 = 256Byte で文字列を表現すると、メモリやディスク上にきれいに並びます。 現在よりもハードウェアを直接操作していた昔なら、ディスクのセクタにきっちり収まる、というのは大きなメリットです。 文字列の内部表現が、現在主流の可変長ではなく、上記のような固定なシステムや言語もあります。 そういう時代に作られたデータをそのまま利用できるように、そのような仕様にしていると考えられます。 もしかしたら、システム自体が、当時からのものが現在でも稼動しているかもしれません

kikkourock
質問者

お礼

早速の回答ありがとうございます。 システム自体は昨年作られたものらしいので、そういう時代の人が設計したからこうなっている気がします。 明確なメリット、デメリットということでは特にないということでしょうか。 何か...なシステムです。

関連するQ&A

  • type = "file"のテキスト部分に値を入れたい。

    こんにちわ。 現在、ASPとDBを連携したシステムを作成しています。文書に添付ファイルをつけるとき、type = "file"を使用し、ローカルからサーバへファイルをアップさせたあと、ファイル名をDBに保存するようにしています。 後々、その文書を修正する際、添付ファイルと共に修正データを画面に表示させたいのですが、添付したファイルのパスはtype = "file"に表示することができません。どうすれば、type = "file"のテキスト部分に表示することができるでしょうか?

    • ベストアンサー
    • HTML
  • 顧客ごとシステムの統一の注意点

    PostgreSQLを使ったシステム(JAVA)を運用しています。 現在、顧客(企業)ごとに、システムもDBも分けて運用しています。 顧客がだんだん増加してきたため、1回のプログラムのアップデートの時間が増えて来ました。 DBは顧客ごとに構築して(変更なし)、システムを1つに統一したいと考えています。 これにより、プログラムのアップデートは1回で済むようになります。 このようにした場合、デメリット、注意点がありましたら教えてください。 一般的に、このようなシステムの構築・運用はどのようにされているのでしょうか? (顧客ごとに構築?1システムに統一する?その他?) よろしくお願いします。

    • ベストアンサー
    • Java
  • DB連携システムの構築が可能な割安なレンタルサーバー会社を教えて!

    はじめまして、DB連携システムの構築が可能な割安なレンタルサーバー会社を教えてください。よろしくお願いします。

  • SQLの日付と、DBの日付項目に対する比較について

    よろしくお願いします。 以下のように、DBには年月日がCHARの8桁で格納されています。 20050125 20050126 20050127 20050128 20050130 20030201 20030202 この項目に対し、システム日付から過去一週間以内の 日付を取得したいのですが、文字型とSQLのDATE型の 比較はどのようにすればよろしいのでしょうか? よろしくお願いします。

  • [C#] DataGridViewの項目名

    こんにちは、honiyonです。  VC# + .NET2を勉強しています。  1つのフォームに2つのDataGridViewを貼り付けた場合、  同じ名前の項目を両方に用意する事が出来ません。  (列の編集→列の追加→非バインド列の名前項目)  ヘッダーテキストは重複OKでも、名前は1つのフォームに対してユニークでなければならないように見えます。  特にDBとの連携は考えておらず、データを表にして表したいだけなのですが。  複数の表で、同じ意味の項目は同じ名前にしておきたいのです。  解決案、代替案などありましたら、是非アドバイスをお願いします。  宜しくお願いします(..  

  • ASP.NET (VB) データのnull(空白)項目について

    現在、visual web developer 2005 expressで簡単な検索型のwebシステムを構築しています。 DBにはaccessを使用しています。vb.netでコードを記述しているのですが、 データ項目にnull(空白)項目があると"型が一致しません"とのアプリケーション エラーが出てしまいます。 どのように回避すればよいのでしょうか? コードは下記のように記述しています。 ================================================================================================= Private Sub set_data(ByRef d As Data.DataSet, ByVal i As Integer, ByRef txt As TextBox) If Len(d.Tables(0).Rows(0).Item(i)) > 0 Then txt.Text = d.Tables(0).Rows(0).Item(i) End If End Sub ================================================================================================= 上記は最下部に記述し上部にtextboxをフォームと対応させてブラウザで対応項目を表示させています。

  • 【ACCESS】印刷項目を変更したい

    ACCESSで顧客管理をしています。 設定を変更をしたいと思うのですが、前任者が作ったシステムのため 変更の方法がわからずにいます。 ちなみに私はACCESSに関しては初心者です。 初心者が扱うには難しい部分があるかとは思いますが、 もしよろしければご教授下さい。 ============================================================= 【1】メインのフォームの中に、顧客データを入力するボタンと、 その顧客データの中から日付を指定して抽出し印刷プレビューを 表示させるボタンがあります。 今回、その印刷される項目を変更したいと思っています。 (入力している顧客データの項目のうち5項目のみが印刷されています) この印刷項目がどこで設定されているかが分かりません。 【2】同様に印刷プレビューに関してですが、抽出された顧客データの 合計数がデータの下に表示・印刷されるようになっているのですが、 数字が3桁になると"E"となり正しく表示されません。 (例えば200だと2Eと表示される) これを正しく表示させたいのですが方法がわかりません。 ============================================================= 以上、よろしくお願い致します。

  • Excelを用いた3層構造実装方法

    Excel VBA と Oracle(OLE接続)でシステム(2層構造)が構築されています。 今回、DB隠蔽化(エンドユーザーからは直接データベースに触れないようにする)を目的として再構築を考えています。 1.ユーザーの使い勝手からExcelをフロントエンドツールとして使いたい。 2.Oracleデータベースとのやりとりが可能であること 上記を満たすには、3層構造を提供しているものを購入すれば可能であり、 ミドルウェアやシンクライントなども検討しましたが、値段などの関係により候補から除外しました。 本題と致しましてExcelをフロントエンドツールとした3層構造は可能なのでしょうか? 可能であれば方法をご教授お願いいたします。

  • テキストボックスへの入力に対してのテスト項目について質問させて下さい。

    テキストボックスへの入力に対してのテスト項目について質問させて下さい。 Webアプリケーションでテキストボックスに入力されたワードを元に DBへ接続後に検索するSqlを発行し、結果を表示するプログラムを作成したのですが その検索処理に対して、テストを行い問題を洗い出したいと考えています。 色々と調べてみた結果、入力されるデータへの ・境界値チェック(今回の場合はsqlに対する入力文字数と思っています) ・禁則文字チェック くらいしか思いつかなかったのですが その他、これはチェックするべき・した方が良いといのがあれば ぜひ教えて頂けると嬉しいです。 個人的に作成していますので、実際の業務では どれくらい詰めてチェックしているのかも興味あります。

    • ベストアンサー
    • Java
  • oracle,sql-server,DB2,フリーDB

    oracle 10g sql-server 2005 DB2 フリーDB(mysqlなど) はどれがいいでしょうか? 一応3年ぐらい前までは開発現場にいたので一通り知っています。 すべて経験ありますが管理はしたことはありません。 価格ならフリーが一番でしょう。信頼性で言うとoracle でもコストが高い。 MSとくっつくならsql-serverだと思うのですが。 まだ社内でどの程度の規模になるかも把握し切れていませんが、 やはり無難にoraが一番でしょうか?? 後々に業務システムの開発をします。 javaにするかVB,delphiなどにするかも決まってません。 DB2なら一応資格も持っているんですけどね。 管理、構築の容易さなどそれぞれの特徴も教えてください。