3

次のルールに基づいて、プロジェクトで次に使用可能なファイル名をユーザーに提供できるようにする必要があります。

  • 会社名または場所を表す 3 文字

  • モデル番号を表す 1 文字 (つまり、3200 シリーズでは 2 文字、3300 シリーズでは 3 文字)

  • 数値 2 または 3 のみである検証タイプの 1 文字

  • その生産または開発を伝えるための1文字

  • バージョン番号の 1 文字。( 0 - z であることが提案されました)1文字でそれを行う方法が他にわかりません。

これらすべてをたった 7 文字で表すファイル命名のより良いアイデアを誰かが持っている場合は、私に知らせてください。ファイルは電子デバイスにロードされ、7 文字を超えるファイル名は受け入れられません。

誰かが場所をクリックして、prod や dev などのチェック ボックスをクリックできるようにインターフェイスを作成すると、アプリケーションがユーザーにファイルの入力を求めるときに、ユーザーがキー入力する実行可能なファイル名を吐き出すことができると考えました。名前。これらのファイルは非常に多く存在する可能性があるため、ファイルが適切に配置されていることを確認するという非常に困難な課題に直面しています。名前に基づいてファイルの詳細を特定し、ファイルが一意であることを確認できます。

何か案は?

4

1 に答える 1

1

このようなものは、テストを開始するのに十分なはずです。書かれているように MySQL では機能しませんが、チェック制約を外部キー制約に置き換えることができます。

create table filenames (
  company_name_or_location char(3) not null,
  model char(1) not null,
  validation_type char(1) not null check (validation_type in ('2', '3')),
  prod_or_dev char(1) not null check (prod_or_dev in ('p', 'd')),
  version char(1) not null,
  primary key (company_name_or_location, model, validation_type, prod_or_dev, version)
);

ノート

すべての列で、(おそらく) Unicode 文字を含む任意の英数字を使用できます。それはあなたが望むものではないかもしれません。Unicode 文字を排除する最善の方法は、おそらくUnicodeを含まない照合を使用することです。おそらく、データベース全体ではなく、テーブルに対してそれを行いたいでしょう。

代理キーを使用する場合でも、列 {company_name_or_location, model, validation_type, prod_or_dev, version} に対する UNIQUE 制約を含む、そのテーブル用に記述した他のすべての制約が必要です。(モデルが数値または英数字などを許可するかどうかについては、これらすべての制約、またはUnicode を説明する同等の制約が必要です。)

于 2013-03-18T15:16:31.890 に答える