2012-01-26 14 views
0

MySqlの文字を自動的にインクリメントすることは可能ですか?そうでない場合は、下記のアプリケーションの説明に基づいて代替案を提案できますか?倉庫管理アプリケーション - 主キーの文字の自動インクリメント。

背景:

私は倉庫管理アプリケーションを構築しています。倉庫内のアイテムを見つけるために、シェルフの1,2,3 ...とシェルフの行にa、b、c、... aa、ab、acの番号を付けます。 特定のセルを見つけるには棚では2つの組み合わせが得られます(exmapleの場合、ウィジェットは「4d」にあります)。 これを行うには、自動インクリメントのプライマリキーとShelfRowテーブルを自動的にインクリメントするShelfColumnテーブルを作成します。アソシエイティブテーブルが2つを結合して、私の商品を見つけるためにユニークなシェルフを形成します。

答えて

2

いいえ、文字を自動インクリメントすることはできません。

MySQLのauto_increment PKに関するクイックストーリー:その意味では、その動作に決して頼るべきではないという点で特別です。 これは、InnoDBがデータをハードディスクに物理的に保存する方法を決定するためにも使用されます。

したがって、auto_incrementに数字を増やし、干渉せずに手紙を追加しようとするのが一番です。

一方、シェルフの行に文字を付ける必要はありますか?それを番号でラベル付けしない理由はありません。素敵な行列が得られ、誰もが列10の行25が何であるかを即座に知ることができます。

+0

また、実際には「通路」も知っておく必要があります。私が働いている場所では、常に手紙で識別されていますが、あなたが言ったように、あなたはできませんでした。列)=>(3 | 10 | 4) ' –

+0

私はちょうど数字を使うことができると思います。文字だけで、人々がシステムを使いやすくすることができます。彼らは手紙が通路に使われ、混乱が少ないことを理解しています。他の誰かが倉庫内の場所を分類する方法について提案していますが、倉庫のように均一なサイズの領域を持つ清潔な棚ではないことに注意してください。ロフトや引き出しなどもあります。 – andrew

1

私はautoincrementがこの種の機能をサポートするとは思いません。結局のところ、すべての言語とすべての文字セットについて知っておく必要があります。また、アルファベットの最後の文字になるときに何をすべきかを知るために、文字以外の記号(句読点、空白、制御コードなど)。

アプリケーションロジックで文字選択を実装するか、行の数値を使用して出力時に文字に変換する必要があります(aは1、bは2、aaは27、abは28、等)。

関連する問題