Когда sqlite манифест печатается?
sqlite использует то, что авторы называют " Manifest Typing", что в основном означает, что sqlite динамически вводится: вы можете сохранить значение varchar в столбце "int", если вы хотите.
Это интересное дизайнерское решение, но всякий раз, когда я использовал sqlite, я использовал его как стандартную RDMS и обрабатывал типы, как если бы они были статическими. В самом деле, я даже не хотел динамически типизированных столбцов при разработке баз данных в других системах.
Итак, когда эта функция полезна? Кто-нибудь нашел для него хорошее применение на практике, которое не могло быть сделано так же легко с помощью статически типизированных столбцов?
Ответы
Ответ 1
Это просто упрощает использование типов. Вам не нужно беспокоиться о том, насколько велика эта область, которая должна быть на уровне базы данных, или сколько может быть ваших подшивок. Более или менее это "почему бы и нет"? вещь.
С другой стороны, статическая типизация в SQL Server позволяет системе лучше искать и индексировать, в некоторых случаях гораздо лучше, но для половины всех приложений я сомневаюсь, что улучшение производительности базы данных будет иметь значение, или их производительность будет "плохой" 'по другим причинам (создаются временные таблицы каждый выбор, экспоненциальный выбор и т.д.).
Я все время использую SqLite для своих проектов .NET как клиентский кеш, потому что это слишком простое использование. Теперь, если они могут использовать только GUID, такие же, как SQL-сервер, я был бы счастливым кемпиром.
Ответ 2
Динамическое типирование полезно для хранения таких вещей, как настройки конфигурации. Например, возьмите реестр Windows. Каждый ключ очень похож на таблицу SQLite формы:
CREATE TABLE Settings (Имя TEXT PRIMARY KEY, Value);
где Value может быть NULL (REG_NONE) или INTEGER (REG_DWORD/REG_QWORD), TEXT (REG_SZ) или BLOB (REG_BINARY).
Кроме того, я должен согласиться с Jasons о полезности не применять максимальный размер для строк. Потому что большую часть времени эти ограничения являются чисто суровыми, и вы можете рассчитывать на то, что когда-нибудь найдете 32-байтовую строку, которая должна быть сохранена в вашем VARCHAR (30).