Тип данных для скидки в sql

Улучшенная БД «Скидки»

Задача: нужно создать БД в СУБД « MS SQL Server 2005» для учета скидок, их условия предоставления, типы получателе, статусы и способы предоставления.

Запускаем « MS SQL Server 2005 MSE » в режиме администратора, соединяемся с локальным сервером, переходим в обозреватель объектов.

Пустая БД «Скидки» создана. Переходим на ветку «Скидки – Таблицы». Вызываем контекстное меню на разделе «Таблицы» и выбираем «Создать таблицу…». Создаем поле и устанавливаем настройки для первой таблицы «Типы получателей».

Тип данных, размер, ключ

Затем заполняем ее данными, т.е. типами возможных получателей скидок.

Тип данных для скидки в sql. Смотреть фото Тип данных для скидки в sql. Смотреть картинку Тип данных для скидки в sql. Картинка про Тип данных для скидки в sql. Фото Тип данных для скидки в sql

Рис. 1. Таблица «Типы получателей»

Далее создаем таблицу «Способы предоставления».

Тип данных, размер, ключ

Заполняем эту таблицу способами предоставления скидок.

Тип данных для скидки в sql. Смотреть фото Тип данных для скидки в sql. Смотреть картинку Тип данных для скидки в sql. Картинка про Тип данных для скидки в sql. Фото Тип данных для скидки в sql

Рис. 2. Таблица «Способы предоставления»

После этого создаем таблицу «Статусы скидок», чтобы знать какая скидка сейчас действует, а какая нет.

Тип данных, размер, ключ

Заполняем таблицу статусами скидок.

Тип данных для скидки в sql. Смотреть фото Тип данных для скидки в sql. Смотреть картинку Тип данных для скидки в sql. Картинка про Тип данных для скидки в sql. Фото Тип данных для скидки в sql

Рис. 3. Таблица «Статусы скидок»

Далее переходим к созданию таблицы для условий предоставления скидок, назовем ее «Условия предоставления».

Тип данных, размер, ключ

Заполняем данную таблицу различными благоприятными обстоятельствами, которые могут сопутствовать покупке.

Тип данных для скидки в sql. Смотреть фото Тип данных для скидки в sql. Смотреть картинку Тип данных для скидки в sql. Картинка про Тип данных для скидки в sql. Фото Тип данных для скидки в sql

Рис. 4. Таблица «Условия предоставления»

И, наконец, основная таблица – «Скидки». В общем в этой таблице будет много внешних ключей. Чтобы создать внешний ключ надо выделить поле и нажать на кнопку «Отношения», при этом связываемые поля должны иметь один тип и размер.

Тип данных, размер, ключ

Int, счетчик, первичный ключ

Внешний ключ, таблица «Условия предоставления»

Внешний ключ, таблица «Типы получателей»

Внешний ключ, таблица «Способы предоставления»

Внешний ключ, таблица «Статусы»

Быстрехонько заполняем таблицу «Скидки», все данные у нас уже имеются.

Тип данных для скидки в sql. Смотреть фото Тип данных для скидки в sql. Смотреть картинку Тип данных для скидки в sql. Картинка про Тип данных для скидки в sql. Фото Тип данных для скидки в sql

Рис. 5. Таблица «Скидки»

Далее переходим в раздел «Диаграммы баз данных» и создаем схему данных, точнее соглашаемся, чтобы ее создали, нужно лишь добавить таблицы. Получилось довольно оригинально.

Источник

Соответствующий тип данных для хранения процентных значений?

каков наилучший тип данных для хранения процентных значений в диапазоне от 0.00% до 100.00%?

5 ответов

предполагая два знака после запятой в процентах, тип данных, который вы используете, зависит от того, как вы планируете хранить свои проценты. Если вы собираетесь хранить их дробный эквивалент (например, 100.00% хранится как 1.0000), я бы сохранил данные в decimal(5,4) тип данных CHECK ограничение, которое гарантирует, что значения никогда не превышают 1.0000 (предполагая, что это колпачок) и никогда не опускаются ниже 0 (предполагая, что это пол). Если вы собираетесь хранить их номинальную стоимость (например, 100.00% хранится как 100.00), тогда вы должны использовать decimal(5,2) соответствующей CHECK ограничения. В сочетании с хорошим именем столбца, он дает понять другим разработчикам, какие данные и как данные хранятся в столбце.

пример:

Читайте Далее:

«правка»:decimal тип, вероятно, лучше подходит. Тогда вам не нужно вручную масштабировать. Она занимает 5 байт на значение.

Я согласен с Томасом, и я бы выбрал десятичное(5,4) решение, по крайней мере, для приложений WPF.

спецификатор формата percent («P») умножает число на 100 и преобразует его в строку, представляющую процент.

тогда вы сможете использовать это в своем XAML код:

используйте numeric (n,n), где N имеет достаточное разрешение для округления до 1.00. Например:

Источник

Типы данных SQL

Типы данных SQL

Типы данных SQL разделяются на три группы:
строковые;
с плавающей точкой (дробные числа);
целые числа, дата и время.

Типы данных MySQL

Типы данных MySQL разделяются на следующие типы:

Типы данных Oracle

Типы данных Oracle разделяются на следующие группы:

ANSI SQL стандарт распознает только текст и число, в то время как большинство коммерческих программ используют другие специальные типы, такие как DATЕ и TIME — фактически почти стандартные типы. Некоторые пакеты также поддерживают такие типы, как, например, MONEY и BINARY. Типы данных, распознаваемые с помощью ANSI, состоят из строк символов и различных типов чисел, которые могут классифицироваться как точные числа и приблизительные числа.

CHARACTER(length) определяет спецификацию строк символов, где length задает длину строк заданного типа. Значения этого типа должны быть заключены в одиночные кавычки. Большинство реализаций поддерживают строки переменной длины для типов данных VARCHAR и LONG VARCHAR (или просто LONG).

В то время, как поле типа CHAR всегда может распределить память для максимального числа символов, которое может сохраняться в поле, поле VARCHAR при любом количестве символов может распределить только определенное количество памяти, чтобы сохранить фактическое содержание поля, хотя SQL может установить некоторое дополнительное пространство памяти, чтобы следить за текущей длиной поля. Поле VARCHAR может быть любой длины, включая реализационно-определяемый максимум. Этот максимум может меняться от 254 до 2048 символов для VARCHAR и до 16000 символов для LONG. LONG обычно используется для текста пояснительного характера или для данных, которые не могут легко сжиматься в простые значения полей; VARCHAR может использоваться для любой текстовой строки, чья длина может меняться.

Извлечение и модифицирование полей VARCHAR — более сложный, и, следовательно, более медленный процесс, чем извлечение и модифицирование полей CHAR. Кроме того, некоторое количество памяти VARCHAR, остается всегда неиспользованной для гарантии вмещения всей длины строки. При использовании таких типов следует предусматривать возможность полей к объединению с другими полями.

Точные числовые типы — это числа, с десятичной точкой или без десятичной точки, которые могут представляться в виде [+|-] [. ] и специфицироваться как:

DECIMAL(precision [, scale]) — аргумент размера имеет две части: точность и масштаб. Масштаб не может превышать точность. Точность указывает сколько значащих цифр имеет число. Масштаб указывает максимальное число цифр справа от десятичной точки. Масштаб = нулю делает поле эквивалентом целого числа.

NUMERIC(precision [, scale]) — такое же как DECIMAL за исключением того, что максимальное десятичное не может превышать аргумента точности

INTEGER — число без десятичной точки. Эквивалентно DECIMAL, но без цифр справа от десятичной точки, т.е. с масштабом равным 0. Аргумент размера не используется (он автоматически устанавливается в реализационно-зависимое значение).

SMALLINT — такое же как INTEGER, за исключением того, что, в зависимости от реализации, размер по умолчанию может ( или не может ) быть меньше чем INTEGER.

Приблизительные числовые типы — это числа в показательной (экспоненциальной по основанию 10) записи, представляемые как Е и специфицирущиеся следующим образом:

FLOAT[(precision)] — число с плавающей запятой. Аргумент размера состоит из одного числа, определяющего минимальную точность.

REAL — такое же как FLOAT, за исключением того, что никакого аргумента размера не используется. Точность устанавливается реализационно-зависимой по умолчанию.

DOUBLE PRECISION — такое же как REAL, за исключением того, что реализационно-определяемая точность для DOUBLE PRECISION должна превышать реализационно-определяемую точность REAL.

Типы данных Access

Типы данных Access разделяются на следующие группы:

Типы данных SQL Server

Типы данных, используемые в SQL Server:

Типы данных PostgreSQL

База данных PostgreSQL поддерживает большинство типов данных SQL2003 плюс огромный набор типов для хранения пространственных и геометрических данных. PostgreSQL может похвастаться богатым набором операторов и функций, специально предназначенных для геометрических типов данных. Сюда входят такие средства, как поворот, поиск пересечений и масштабирование. В PostgreSQL также есть поддержка дополнительных версий существующих типов данных, которые характерны тем, что занимают меньше места на диске, чем соответствующие исходные версии. Например, в PostgreSQL предлагается несколько вариантов типа INTEGER для хранения больших и небольших чисел, соответственно занимающих больше или меньше места.

Вы должны войти, чтобы оставить комментарий.

Источник

Какой тип поля SQL Server лучше всего подходит для хранения значений цены?

Мне интересно, какой тип лучше всего подходит для поля цены в SQL Server для структуры, подобной магазину?

смотрим обзор у нас есть типы данных, которые называются деньги, smallmoney, то есть decimal / numeric и наконец float и реальные.

имя, память/диск-использование и диапазоны значений:

действительно ли разумно хранить значения цен в тех типы? Как насчет eg. INT?

Так почему бы не пойти на int?

int быстрый, его только 4 байта, и вы можете легко сделать десятичные дроби, сохраняя значения в центах вместо долларов, а затем разделить, когда вы представляете значения.

другим подходом было бы использовать smallmoney, который также составляет 4 байта, но для этого потребуется математическая часть процессора для выполнения calc, где As Int-целочисленная мощность. с другой стороны, вам нужно будет разделить каждый результат.

какие плюсы/минусы? Перейти на целочисленные цены или smallmoney или некоторые другие?

Что говорит ваш опыт?

7 ответов

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

мой аргумент против использования int : зачем изобретать колесо, сохраняя int и потом, не забудьте разделить на 100 (10000), чтобы получить значение и умножить обратно, когда вы идете, чтобы сохранить значение. В моем понимании типы денег используют int или long как базовый тип хранения в любом случае.

наконец, типы MONEY / SMALLMONEY являются собственностью Microsoft. Числовые / десятичные являются частью стандарта SQL. Они используются, признаются и поняты большим количеством людей и поддерживаются большинством DBMSs и другим программным обеспечением.

лично я бы использовал smallmoney или деньги для хранения магазинных цен.

использование int добавляет сложность в другом месте.

и 200 миллионов совершенно действительная цена в корейских вон или индонезийских рупиях тоже.

типы данных SQL money и smallmoney оба разрешают c# decimal тип:

Я бы пошел за типом данных Money. Invididually вы не можете превышать значение в Smallmoney, но было бы легко для нескольких элементов, чтобы превысить его.

Источник

тип данных, используемый для хранения скидки в sql php

2 ответа

Какой тип данных я должен выбрать для хранения IP-адреса в SQL Server? Выбрав правильный тип данных, будет ли достаточно легко отфильтровать его по адресу IP?

какой тип данных лучше всего подходит для хранения строки в таблице в sql server?

Ну, вы просто должны спросить себя, что это за данные.

Если это деньги, например цена, это плавающее, двойное или десятичное число в базе данных ( все они, по сути, одно и то же, зависит от вашего DB )., Если это целое число, то это целое число. Для изображения, если это ссылка ( src), используйте VarChar, но для самих данных изображения-BLOB.

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

Похожие вопросы:

Каков эффективный тип данных в SQL 2005 для хранения поля комментариев?

Хай ребята, Какой тип данных вы бы предложили для хранения значений штрих-кода в sql server 2005?

Какой тип данных будет использоваться для хранения видеофайлов в sql server2000?

Какой тип данных я должен выбрать для хранения IP-адреса в SQL Server? Выбрав правильный тип данных, будет ли достаточно легко отфильтровать его по адресу IP?

какой тип данных лучше всего подходит для хранения строки в таблице в sql server?

Фон У нас есть большое приложение asp.net и использует много сеансов, таких как наборы данных, datatables и т. д. Мы хотим поддерживать веб-фермы для этого приложения, поэтому мы хотим сохранить.

Вот моя таблица прямо сейчас (используя mysql): SQL Table: koko_table name varchar(140) status varchar(140) time TIMESTAMP Моя проблема в основном заключается в том, что у меня есть форма (с.

Скажите мне тип данных в MS SQL server для хранения любого файла word / pdf.

Каков наилучший тип данных в базе данных Microsoft SQL Server для хранения big JSON (минимум 8000 символов) в одной переменной? Он понадобится мне позже для сохранения, анализа и извлечения данных.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *