Когда полезен манифест sqlite? - PullRequest
16 голосов
/ 21 мая 2009

sqlite использует то, что авторы называют " Manifest Typing ", что в основном означает, что sqlite динамически типируется: вы можете сохранить значение varchar в столбце "int", если хотите.

Это интересное дизайнерское решение, но всякий раз, когда я использовал sqlite, я использовал его как стандартную RDMS и относился к типам как к статическим. На самом деле, я даже не хотел динамически типизированных столбцов при проектировании баз данных в других системах.

Итак, когда эта функция полезна? Кто-нибудь нашел хорошее применение на практике, которое нельзя было бы сделать так же легко со статически типизированными столбцами?

Ответы [ 2 ]

5 голосов
/ 21 мая 2009

Это действительно просто упрощает использование типов. Вам больше не нужно беспокоиться о том, насколько большим должно быть это поле на уровне базы данных, или о том, сколько разветвлений могут быть вашими интергерами. Более или менее это «почему нет?» вещь.

С другой стороны, статическая типизация в SQL Server позволяет системе лучше выполнять поиск и индексирование, в некоторых случаях гораздо лучше, но для половины всех приложений я сомневаюсь, что повышение производительности базы данных будет иметь значение, или их производительность будет «плохой» по другим причинам (временные таблицы создаются при каждом выборе, экспоненциальном выборе и т. д.).

Я все время использую SqLite для своих проектов .NET в качестве клиентского кеша, потому что он слишком прост в использовании. Теперь, если они смогут использовать только идентификаторы GUID, аналогичные SQL-серверу, я был бы счастливым путешественником.

4 голосов
/ 06 марта 2010

Динамическая типизация полезна для хранения таких вещей, как настройки конфигурации. Взять, к примеру, реестр Windows. Каждый ключ очень похож на таблицу SQLite в форме:

Настройки CREATE TABLE (имя TEXT PRIMARY KEY, Value);

где значение может быть NULL (REG_NONE) или INTEGER (REG_DWORD / REG_QWORD), TEXT (REG_SZ) или BLOB (REG_BINARY).

Кроме того, мне придется согласиться с Джейсоном о полезности не устанавливать максимальный размер для строк. Поскольку большую часть времени эти ограничения носят чисто произвольный характер, вы можете рассчитывать на то, что когда-нибудь найдете 32-байтовую строку, которую нужно сохранить в вашем VARCHAR (30).

...