Вопрос

sqlite использует то, что авторы называют "Типирование манифеста", что по сути означает, что sqlite типизирован динамически:Если хотите, вы можете сохранить значение varchar в столбце «int».

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

CREATE TABLE Settings (Имя TEXT PRIMARY KEY, Value);

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top