0

SQLite Database Browser を起動したところ、Blob、Int、および Text データ型が見つかりました。独自の型に名前を付けるボックスもありますが、それらは SQLite で広くサポートされていないと予想されます。

可変数のフィールド (それぞれが int と text など、フィールド自体の組み合わせとして構造化されている) を持つレコードがある場合、それらをテーブルにどのように配置しますか? これらのために別のテーブルを作成する必要があると思います。これ以上エレガントなソリューションはありませんか? 特に、SQLite データベース マネージャーを使用してデータベースを手動で作成する場合。

4

2 に答える 2

1

これは、典型的な1対多の関係になります。はい、それらのフィールドの別のテーブルを作成し、依存するレコードのIDである追加の列を作成します。

これらのフィールドに多くのデータが含まれていない場合(数値またはタグ)、SQLiteでは、テキスト列にコンマ(または他の記号)で区切られた値として格納する方がよい場合があります。

于 2012-06-25T16:59:15.513 に答える
1

動的フィールド名を2つのテーブル設定に保存できます。

ヘッダーと詳細の 2 つのテーブルを作成します。ヘッダーには、レコードのすべての行に共通する情報とともに、プライマリ ID が保持されます。Details には、ヘッダーからの ID、「列名」、および列の値が保持されます。

Create table header (id int, desc character varying)

Create table details (id int, header_id int, column_name character varying, column_value character varying)

構造でアイデアを得ますか?これは名前と値のペアの関係 (エンティティ / 属性) として知られており、1 つのヘッダー レコードに対して任意の数の「列」を格納できます。詳細テーブルをピボット (または一緒に構築) して、その中の情報を読み取る必要があります (ビューとして実行できます)

于 2012-06-25T18:21:48.713 に答える