17

sqlite は、作成者が「マニフェスト タイピング」と呼ぶものを使用します。これは基本的に、sqlite が動的に型付けされることを意味します。必要に応じて、varchar 値を「int」列に格納できます。

これは興味深い設計上の決定ですが、sqlite を使用するときは常に、標準の RDMS のように使用し、型を静的であるかのように扱ってきました。実際、他のシステムでデータベースを設計するときに、動的に型指定された列を望んだことは一度もありません。

では、この機能はいつ役立つのでしょうか? 静的に型付けされた列と同じように簡単に実行できなかった実際の使用方法を見つけた人はいますか?

4

2 に答える 2

5

型を使いやすくするだけです。このフィールドがデータベース レベルでどのくらいの大きさである必要があるか、または整数がいくつになるかについて心配する必要はありません。多かれ少なかれ、それは「なぜ?」です。もの。

一方、SQL Server の静的型付けにより、システムの検索とインデックス作成が改善され、場合によってははるかに改善されます。理由 (選択ごとに作成される一時テーブル、指数選択など)。

私は .NET プロジェクトのクライアント キャッシュとして常に SqLite を使用しています。SQLサーバーと同じようにGUIDを使用することしかできない場合、私は幸せなキャンピングカーになるでしょう.

于 2009-05-20T22:05:02.763 に答える
4

動的型付けは、構成設定などを保存するのに役立ちます。たとえば、Windows レジストリを見てみましょう。各キーは、次の形式の SQLite テーブルを持つことによく似ています。

CREATE TABLE 設定 (名前 TEXT PRIMARY KEY、値);

ここで、値は NULL (REG_NONE) または INTEGER (REG_DWORD/REG_QWORD)、TEXT (REG_SZ)、または BLOB (REG_BINARY) にすることができます。

また、文字列の最大サイズを強制しないことの有用性について、Jasons に同意する必要があります。ほとんどの場合、これらの制限は純粋に恣意的なものであり、VARCHAR(30) に格納する必要がある 32 バイトの文字列がいつか見つかると期待できます。

于 2010-03-06T07:34:08.477 に答える