Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696

Хранение нетабличных данных. Как правильно?

23.03.2014, 19:07. Показов 1437. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! У меня есть данные, которые не назовешь табличными, например, курс валюты. Как принято хранить данные вида ключ-значение? Отдельную таблицу создавать для одного значения мне не кажется красивым решением. Отдельно сохранять в файл тоже не хочется - хочется хранить все данные в одном месте.
Есть ли в SQL Server какой-то механизм для хранения таких данных или, всё же, использовать отдельный файл?
Благодарю за внимание!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.03.2014, 19:07
Ответы с готовыми решениями:

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

Правильно ли организовано хранение дат? Как написать запрос?
Таблица для хранения дат: Поля: ID, Тип, Родитель, День, Месяц, Год (День, Месяц, Год могут быть null) Пример заполненной таблицы: ...

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

12
 Аватар для golandy
73 / 73 / 20
Регистрация: 11.01.2014
Сообщений: 252
Записей в блоге: 2
23.03.2014, 23:41
Лучший ответ Сообщение было отмечено body90 как решение

Решение

Можно и в бд хранить. Структура например такая.
SQL
1
2
3
[Currency] [NUMERIC](18, 0) NOT NULL, - код валюты 
[DateRate] [datetime] NOT NULL, - дата
[Rate] [money] NOT NULL - заначение
Курсы меняются так что мне кажется такой вариант вполне приемлем, да и если что можно переводить из одной валюты в другую на дату. Если нужен скрипт на таблицу - скину.
1
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
24.03.2014, 02:46  [ТС]
А есть ли смысл тратить ресурсы, если в истории изменения курсов нет надобности, а на запрос значения придется искать максимальную дату вместо прямого указания ID?
0
 Аватар для golandy
73 / 73 / 20
Регистрация: 11.01.2014
Сообщений: 252
Записей в блоге: 2
24.03.2014, 02:52
а если захотите получить курс определенную дату? например 30,10,2011 а последняя запись от 30,11,2012. Как быть? Как вариант можете ID генерить руками типа год месяц дата. Например 20140101, в sql пользоваться CONVERT() с маской 112. Но это если не будут меняться курсы в течение дня. Если могут, то можно еще и часы дописать. Я думаю в numeric(18,0) вложитесь.
1
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
24.03.2014, 03:56  [ТС]
А в money правильно хранить деньги, а то я в float закидывал их и задолбался эту запятую на точку заменять в запросах.
0
 Аватар для golandy
73 / 73 / 20
Регистрация: 11.01.2014
Сообщений: 252
Записей в блоге: 2
24.03.2014, 04:01
money вполне подойдет
1
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
24.03.2014, 11:11
Цитата Сообщение от golandy Посмотреть сообщение
Как вариант можете ID генерить руками типа год месяц дата
И как это поможет получить курс на дату, для которой нет записи в таблице? И чем это лучше, чем столбец с датой курса?
1
 Аватар для golandy
73 / 73 / 20
Регистрация: 11.01.2014
Сообщений: 252
Записей в блоге: 2
24.03.2014, 11:18
Цитата Сообщение от invm Посмотреть сообщение
Цитата Сообщение от golandy Посмотреть сообщение
Как вариант можете ID генерить руками типа год месяц дата
И как это поможет получить курс на дату, для которой нет записи в таблице? И чем это лучше, чем столбец с датой курса?
наверное не совсем правильно выразился. Получить кросс курс. Т.е. в таблице хранить данные в одной валюте. Например для России все в рос. рублях. А когда надо найти курс к примеру евро/доллар, то это можно будет сделать. Например на 30102014 - доллар 30 руб., евро -35 руб., доллар/евро - 30/35. Я про это имел виду. Это как вариант. Хотя все зависит от заданных условий. Я предложил просто на будущее, чтобы если вдруг понадобиться то не сильно ломать голову. А у вас какой вариант? Бросайте рассмотрим. А столбец с датой лучше. Я предложил как без него обойтись если не очень хочется. А по поводу отсутствующей записи, можно брать последнюю по дате, или исключать такую ситуацию - например просить доввести данные
1
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
24.03.2014, 11:45
Цитата Сообщение от golandy Посмотреть сообщение
А у вас какой вариант? Бросайте рассмотрим.
Да этот вариант вы сами и озвучили.
Цитата Сообщение от golandy Посмотреть сообщение
А столбец с датой лучше. Я предложил как без него обойтись если не очень хочется.
О том и речь. Зачем делать суррогат даты, вместо даты.
1
 Аватар для golandy
73 / 73 / 20
Регистрация: 11.01.2014
Сообщений: 252
Записей в блоге: 2
24.03.2014, 12:30
Цитата Сообщение от invm Посмотреть сообщение
О том и речь. Зачем делать суррогат даты, вместо даты.
так я же говорю. Что изначально было предложено с датой, но спросили про вариант без даты - предложил такой вариант. Но это не выход, это уже решать человеку что ему нравиться. Я сам за вариант с датой - у меня по крайней мере не было особых проблем.
1
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
25.03.2014, 02:13  [ТС]
А есть какой-то формат задания даты/времени, который поймет сервер без всяких манипуляций с конвертированием? Насчет даты читал в MSDN, что нужно указывать как "yyyy-MM-dd" и всегда будет воспринято однозначно. А как указать и время?
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
25.03.2014, 09:57
T-SQL
1
2
3
declare @t datetime
set @t='2013-03-25T01:02:00.000'
select @t
1
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
25.03.2014, 10:09
Цитата Сообщение от body90 Посмотреть сообщение
А есть какой-то формат задания даты/времени, который поймет сервер без всяких манипуляций с конвертированием? Насчет даты читал в MSDN, что нужно указывать как "yyyy-MM-dd" и всегда будет воспринято однозначно. А как указать и время?
Кто сказал такую чушь?
YYYY-MM-DD - инвариантный формат только для типа DATE.
Применяйте YYYYMMDD hh:mm:ss.nnn
Или то, что pincet написал (ISO8601).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.03.2014, 10:09
Помогаю со студенческими работами здесь

Как правильно организовать хранение данных?
Добрый день! Прошу совета. Есть база Mysql. Есть класс типа Машина В него входит несколько подклассов (Модель, Цвет, Параметры). ...

Создание нетабличных БД, их связь и возможность выгрузки данных
Встал вопрос, как создать базу, в частности связи в базе, если фактически она не табличная. Тоесть, если мы создаём базу, в которой...

Хранение данных в синглтоне - правильно ли это?
Приветствую, Приложение состоит из Activity и Service. Им обоим надо работать с данными, находящимися в ArrayList, который берет их из...

Как правильно организовать хранение заказов в интернет-магазине
При разработке интернет-магазина пришел к такому вопросу: есть база товаров. Условно назовем их "товар1", "товар2",...

Как лучше организовать хранение данных?
Всем доброго времени суток. Есть необходимость хранения в базе 500 чисел. Числа поступают в большом количестве, но нужны только 500...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru