少しだけアドバイスを求めています。
すべてを読みたくない人のための要約: auto_increment カラムを 1 つだけ持つテーブルを作成することは合理的な考えですか?
詳細:
私は通常、データベースで複数の言語を管理し、オブジェクトのデータとその言語での説明を別々のテーブルで管理しています。例えば:
Table: MyObject (id auto_increment, height, width, depth. PK = id)
Table: MyObjectDescription (id, language, description. PK = id, language)
2 つの id フィールドが対応しているため、次のようなデータがあります。
MyObject
+----+--------+-------+-------+
| id | height | width | depth |
+----+--------+-------+-------+
| 1 | 10 | 10 | 20 |
| 2 | 5 | 6 | 7 |
+----+--------+-------+-------+
MyObjectDescription
+----+----------+-----------------+
| id | language | description |
+----+----------+-----------------+
| 1 | EN | First object |
| 1 | IT | Primo Oggetto |
| 2 | EN | Second object |
| 2 | IT | Secondo Oggetto |
+----+----------+-----------------+
私の問題は、説明以外にデータがない特定のデータベース オブジェクトがあることです。
たとえば、カテゴリは、id とテキストの説明として単純に定義されます。MyObjectDescription テーブルのような単一のテーブルを使用することもできますが、auto_increment 列を利用できないため、ID を自分で生成する必要があります。これにより、競合状態エラーやテーブル ロックの問題が発生する可能性もあります。または、単一の auto_increment 列を持つ MyObject のような別のテーブルを使用することもできます...
私の疑問は次のとおりです。シーケンスをシミュレートするためだけに単一の列を持つテーブルを使用するのは合理的な考えですか? それともただのバカですか?私のフレームワークには、オブジェクト テーブルを説明テーブルに自動的に結合するロジックが含まれていることにも注意してください。
入力/アイデアをありがとう。
ガレス