2011-12-15 15 views
0

私のレールアプリには、Customer、User、Adminなどの異なるモデルがあります。プライマリIDを文字列として作成し、その前に文字を付加したいと思います。顧客のために、idはC1、C2、C3のようなものになります。ユーザーにとっては、U1、U2、U3など。ランダムプライマリIDをレールに生成する3

+3

これを望むためのあなたの理由は何を見ますか? –

+3

あなたの質問は何ですか? – Veger

答えて

2

になりますあなたは本当に、この情報が必要な場合は、あなただけのstring_idと呼ばれる方法や、ユーザーが定義するカスタム接頭辞で先頭に付加数値idを返す何かを定義することができますか?

非数値のプライマリキーの比較(DB内のレコードを検索する場合)は、アプリの処理速度が遅くなるだけで、なぜ.class.name呼び出しを行うことができるのか分かりませんクラス名を戻すためにあなたが選んだモデル、クラスの最初の文字、または何でも。私はあなたが正当化する必要があると思うとあなたの質問にこれのための技術的な必要性を説明する必要がある、それ以外の場合は本当に悪い考えのように見えます。

また、質問のタイトルは「ランダム」を指定しますが、ランダムな部分はどこですか?あなたは正確に何をしようとしていますか?

基本的にこれまでの質問で提供した情報に基づいて、主キーとして文字列を使用するよりも、複数の優れた方法があります。

2

これを行うための本当に、非常に、スーパーの正当な理由がない限り、ただしないでください。独自のキーを生成することは、誤動作を引き起こすまでは素晴らしい考えです。

代わりに、一意のインデックスを持つ補助キーを作成し、この目的に使用します。

関連する問題