Какой рейтинг вас больше интересует?
|
Главная / Главные темы / Тэг «tsql»

Таблицы данных отвечающие за КЛАДР и загрузчик его данных 2012-10-29 23:03:00
... . Потом архив с TSQL скриптами для каждой ...
+ развернуть текст сохранённая копия
Продолжаю серию практических постов о реализации различных структур в БД. В этом посте речь пойдет о таблицах описывающих различные данные соответствующие содержимому КЛАДР-а. Эти таблицы устроены таким образом, чтобы ими было удобно пользоваться для различных задач. В этом смысле они более универсальны, чем таблицы самого КЛАДР-а. КЛАДР имеет особое значение для нашей страны. На 3-х местах работы (причем 2 из них коммерческие), я взаимодействовал с КЛАДР-ом. Так что, думаю, кому-нибудь пригодиться то, что я тут выложу. Оформление таблиц делалось в соответствии с Об одном из способов именования таблиц, представлений, хранимых процедур.... Единственное отличие это то, что все части и вспомогательные сущности помещаются в таблицы с "типом" TOB. Сначала скрипт будет идти просто как текст поста, чтобы вы могли посмотреть о чем идет речь. Потом будут диаграммы этой части БД. Потом скрипт целиком для накатывания на БД. Потом архив с TSQL скриптами для каждой сущности в отдельности, для того чтобы их было удобно использовать в проекте базы данных в солюшене. И в конце, самое полезное - проект загрузчика данных из файлов официального КЛАДР-а. Правда этого не достаточно для загрузки и кое-что придется сделать вам самим, но все же этот пост вам сильно поможет, если в вашем проекте нужен КЛАДР. Для простоты ссылки ведущие на таблицы, описания которых я не собираюсь публиковать, оформлены просто как значения типа идентификатор (в общем скрипте). В этом проекте это GUID (uniqueidentifier).
use [test]
GO
CREATE TABLE [dbo].[tblKladrDICCountyType]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nvarchar(40) NOT NULL, -- название района
Comment nvarchar(max) NULL, -- некое средней длины дополнительное пояснение
)
GO
-- тип географического объекта
-- обозначает на какую таблицу ссылка: tblKladrTOBCountry, tblKladrTOBRegion, tblKladrTOBSettlement
CREATE TABLE [dbo].[tblKladrDICObjectType]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nvarchar(16) NULL, -- тип гео объекта
Comment nvarchar(max) NULL -- некое дополнительное пояснение
)
GO
-- тип региона внутри страны (первичные данные берутся из КЛАДР)
CREATE TABLE [dbo].[tblKladrDICRegionType]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nchar(16) NOT NULL, -- тип региона - строка
Comment nvarchar(max) NULL, -- некое средней длины дополнительное пояснение
)
GO
-- тип населенного пункта (первичные данные берутся из КЛАДР)
-- например: городок, деревня, аул, аал, заимка
CREATE TABLE [dbo].[tblKladrDICSettlementType]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nchar(16) NOT NULL, -- тип населенного пункта - строка
Comment nvarchar(max) NULL -- некое средней длины дополнительное пояснение
)
GO
-- тип улицы (первичные данные берутся из КЛАДР)
-- например: улица, переулок, проезд, площадь и т.п.
CREATE TABLE [dbo].[tblKladrDICStreetType]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nchar(16) NOT NULL, -- тип улицы - строка
Comment nvarchar(max) NULL -- некое средней длины дополнительное пояснение
)
GO
-- страна
CREATE TABLE [dbo].[tblKladrTOBCountry]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nchar(40) NOT NULL, -- название страны
Comment nvarchar(max) NULL, -- некое средней длины дополнительное пояснение
PartOfPhoneNumber nchar(4) -- номер страны внутри номера телефона
)
GO
-- регионы страны, максимального размера, то есть области/штаты, но не районы/дистрикты
CREATE TABLE [tblKladrTOBRegion]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nchar(40) NOT NULL, -- название региона
Comment nvarchar(max) NULL, -- некое средней длины дополнительное пояснение
Country uniqueidentifier REFERENCES tblKladrTOBCountry(Id) NULL, -- страна в которой регион
RegionType uniqueidentifier REFERENCES tblKladrDICRegionType(Id) NULL, -- тип региона
PartOfAutoNumber nchar(2), -- номер региона внутри номера транспортного средства
KLADRCode nchar(17) NULL, -- код для сопоставления с КЛАДР(здесь полные 17 цифр)
IsActual bit, -- признак актуальности объекта
PartOfPhoneNumber nchar(7) NULL, -- номер региона внутри номера телефона
TimeZone uniqueidentifier,
LastChangeDate datetime2
)
GO
CREATE TABLE [dbo].[tblKladrTOBCounty]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nvarchar(40) NOT NULL, -- название района
Comment nvarchar(max) NULL, -- некое средней длины sдополнительное пояснение
Region uniqueidentifier references tblKladrTOBRegion(Id) NOT NULL, -- ссылка на регион
CountyType uniqueidentifier references tblKladrDICCountyType(Id), --тип района
KLADRCode nchar(17) NULL, -- код для сопоставления с КЛАДР(здесь полные 17 цифр)
PostalIndex nchar(6) NULL, -- почтовый индекс
IsActual bit, -- признак актуальности объекта
LastChangeDate datetime2
)
GO
-- населенные пункты
CREATE TABLE [dbo].[tblKladrTOBSettlement]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nvarchar(40) NOT NULL, -- название населенного пункта
Comment nvarchar(max) NULL, -- некое средней длины дополнительное пояснение
Region uniqueidentifier REFERENCES tblKladrTOBRegion(Id) NOT NULL, -- регион где нас. пункт
County uniqueidentifier REFERENCES tblKladrTOBCounty(Id) NOT NULL, -- район где нас. пункт
SettlementType uniqueidentifier REFERENCES tblKladrDICSettlementType(Id) NULL, -- тип нас. пункта
KLADRCode nchar(17) NULL, -- код для сопоставления с КЛАДР(здесь полные 17 цифр)
PostalIndex nchar(6) NULL, -- почтовый индекс
IsActual bit, -- признак актуальности объекта
IsFake bit, -- признак фиктивности
IsRAT bit, -- в поселении имеется присутствие РАТ
LastChangeDate datetime2
)
GO
-- улица существующая в некотором населенном пункте (первоначально согласно кладр)
CREATE TABLE [dbo].[tblKladrTOBStreet]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nvarchar(40) NOT NULL, -- название населенного пункта
Settlement uniqueidentifier REFERENCES tblKladrTOBSettlement(Id) NULL, -- нас. пункт где улица
StreetType uniqueidentifier REFERENCES tblKladrDICStreetType(Id) NULL, -- тип улицы (ул, пер...)
KLADRCode nchar(17) NULL, -- код для сопоставления с КЛАДР(здесь полные 17 цифр)
PostalIndex nchar(6) NULL, -- почтовый индекс
LastChangeDate datetime2
)
GO
Это скрипт целиком в виде одного файла - KLADR_DB.sql (10,62 kb).
А это скрипты создания каждой отдельной таблицы - KLADR_Db_Entities.zip (5,43 kb),
для использования в проекте базы данных в солюшене.
А это загрузчик из БД КЛАДР-а - KLADR_Loader.zip (12,19 kb). Правда не полный, вам придется использовать ORM, подойдут LINQ2SQL или Entity Framework. Сделать это достаточно быстро, и если кто-нибудь соберется прикрутить к своему проекту КЛАДР, то этот пост сильно упростит и ускорит его работу.
Тэги: (решение), tsql, сделать
Производительность нового суперкомпьютера Cray Titan свыше 20 петафлопс 2012-10-29 18:07:06
Американская компания Cray Inc официально представила новый суперкомпьютер Cray XK7, который получил ...
+ развернуть текст сохранённая копия
Американская компания Cray Inc официально представила новый суперкомпьютер Cray XK7, который получил коммерческое название Titan. Новинка послужит идеальным решением в области биологических и физических исследований и находится в лаборатории Oak Ridge National Laboratory, которая входит в сеть исследовательских лабораторий Министерства энергетики США. Читать далее... Hi-News.ru - Новости высоких технологий. | Комментарии: 1 Посмотреть все записи [...]
Тэги: cray, nvidia, tesla, titan, наука, суперкомпьютеры, технология
Описания таблиц отвечающих за описание машины (часть 3) 2012-10-27 01:07:00
... -2008.jpg" alt=" tsql" />
Продолжаю ... конце архив с TSQL скриптами для каждой ...
+ развернуть текст сохранённая копия
Продолжаю серию практических постов о реализации различных структур в БД. В этом посте речь пойдет о таблицах описывающих марку, модель, модификацию машины, а также ее параметры. Начало серии смотри в этом Описания таблиц отвечающих за человека, паспорт, права (часть 1) посте. Оформление таблиц делалось в соответствии с Об одном из способов именования таблиц, представлений, хранимых процедур.... Единственное отличие это то, что все части и вспомогательные сущности помещаются в таблицы с "типом" TOB. И еще один важный момент касающийся именно описания машин: в скриптах группой моделей называется, то что обычно называют модель, а моделью, то что обычно называют модификацией. Так что, если вы будете применять эти скрипты в своем проекте, то переименуйте эти две таблицы соответственно. Сначала скрипт будет идти просто как текст поста, чтобы вы могли посмотреть о чем идет речь. Потом будут диаграммы этой части БД. Потом скрипт целиком для накатывания на БД. И в конце архив с TSQL скриптами для каждой сущности в отдельности, для того чтобы их было удобно использовать в проекте базы данных в солюшене. Для простоты ссылки ведущие на таблицы, описания которых я не собираюсь публиковать, оформлены просто как значения типа идентификатор (в общем скрипте). В этом проекте это GUID (uniqueidentifier).
USE [CarDB]
GO
-- тип корпуса ТС, соответствует модели машины как 1 к 1
-- например, "седан", "хэтчбэк", "универсал", "джип" ...
CREATE TABLE [dbo].[tblVehicleDICBodyType]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nvarchar(32) NOT NULL, -- это надпись которую видит (сразу) пользователь в GUI
Comment nvarchar(max) NULL -- некое средней длины дополнительное пояснение
)
/*
Список типов тормозов транспортного средства
*/
CREATE TABLE [dbo].[tblVehicleDICBrakeType]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nvarchar(64) NULL,
Comment nvarchar(max) null
)
-- Список типов брэндов: неизвестен, отечественный, зарубежный
CREATE TABLE [dbo].[tblVehicleDICBrandType]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nvarchar(32) NOT NULL,
Comment nvarchar(max) NULL
)
/*
Варианты расположения цилиндров
*/
CREATE TABLE [dbo].[tblVehicleDICCylindersArrangement]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nvarchar(32) NULL,
Comment nvarchar(max) null
)
-- ведущие колеса транспортного средства: передние, задние, полный привод
CREATE TABLE [dbo].[tblVehicleDICDriveWheelsType]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nchar(32) NOT NULL, -- ведущие колеса транспортного средства - строка
Comment nvarchar(max) NULL -- некое дополнительное пояснение
)
CREATE TABLE [dbo].[tblVehicleDICEngineArrangement]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nvarchar(32) NULL,
Comment nvarchar(max) NULL
)
-- тип двигателя: карбюраторный, инжекторный, дизельный
CREATE TABLE [dbo].[tblVehicleDICEngineType]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nchar(64) NOT NULL, -- тип двигателя - строка
Comment nvarchar(max) NULL -- некое дополнительное пояснение
)
-- тип и марка топлива
CREATE TABLE [dbo].[tblVehicleDICFuelType]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nchar(64) NOT NULL, -- тип и марка топлива - строка
Comment nvarchar(max) NULL -- некое дополнительное пояснение
)
-- где произведено ТС: неизвестно, в россии, за рубежом
CREATE TABLE [dbo].[tblVehicleDICRussianProduction]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nvarchar(32) NOT NULL,
Comment nvarchar(max) NULL
)
/*
Список вариантов подвесок
*/
CREATE TABLE [dbo].[tblVehicleDICSuspension]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nvarchar(max) NULL,
Comment nvarchar(max) null
)
-- тип коробки передач: ручная, автоматическая ...
CREATE TABLE [dbo].[tblVehicleDICTransmissionType]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nchar(128) NOT NULL, -- тип коробки передач - строка
Comment nvarchar(max) NULL -- некое дополнительное пояснение
)
-- Параметры ТС.
-- Может быть связана с tblVehicleBOBVehicle или с tblVehicleBOBModel
-- Параметры, указанные как ссылка из tblVehicleBOBVehicle,
-- должны иметь приоритет над параметрами из tblVehicleBOBModel
CREATE TABLE [dbo].[tblVehicleBOBVehicleParams]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
BodyType uniqueidentifier REFERENCES tblVehicleDICBodyType(Id) NOT NULL, -- тип корпуса машины
Weigth int NULL, -- вес машины в килограммах
Length int NULL, -- длина машины в миллиметрах
Width int NULL, -- длина машины в миллиметрах
Height int NULL, -- длина машины в миллиметрах
WheelBase int NULL, -- колесная база в миллиметрах
FrontWheelGauge int NULL, -- колея передних колес в миллиметрах
RearWheelGauge int NULL, -- колея задних колес в миллиметрах
RoadClearance int NULL, -- клиренс в миллиметрах
FuelType uniqueidentifier REFERENCES tblVehicleDICFuelType(Id) NULL,-- тип и марка топлива
GasCanBeUsed bit NULL, -- может ли машина ездить на газе
EngineType uniqueidentifier REFERENCES tblVehicleDICEngineType(Id) NULL, -- тип двигла
EngineVolume int NULL, -- объем двигателя в кубических сантиметрах
EnginePower int NULL, -- мощьность двигателя в лошадиных силах
Transmission uniqueidentifier REFERENCES tblVehicleDICTransmissionType(Id) NULL, -- тип коробки
DriveWheels uniqueidentifier REFERENCES tblVehicleDICDriveWheelsType(Id) NULL, -- колеса ведущие
PlacesCount int NULL, -- количество мест
DoorsCount int NULL, -- количество дверей
Torque nvarchar(64) null, -- Крутящий момент, Н•м при об/мин
IsSupercharge bit null, -- Наличие наддува
ValvesForCylinder int null, -- Количество клапанов на цилиндр
IsABS bit null, -- Наличие АБС
IsESP bit null, -- Система курсовой устойчивости
Acceleration nvarchar(24) null, -- Разгон с места до 100 км/ч, с
MaxSpeed int null, -- Максимальная скорость, км/ч
FuelExpense nvarchar(24) null, -- Средний условный расход топлива, л/100 км
FrontBrake uniqueidentifier REFERENCES tblVehicleDICBrakeType(Id) NULL, -- Тормоза передние
BackBrake uniqueidentifier REFERENCES tblVehicleDICBrakeType(Id) NULL, -- Тормоза задние
CylindersArrangement uniqueidentifier REFERENCES tblVehicleDICCylindersArrangement(Id) NULL,
EngineArrangement uniqueidentifier REFERENCES tblVehicleDICEngineArrangement(Id) NULL,
FrontSuspension uniqueidentifier REFERENCES tblVehicleDICSuspension null, -- Передняя подвеска
BackSuspension uniqueidentifier REFERENCES tblVehicleDICSuspension null, -- Задняя подвеска
LastChangeDate datetime2
)
-- марка ТС это название ее производителя, 1 марка соотв. N моделям транспротного средства
-- например, "BMW", "Audi", "Maserati", "Saleen", "Koenigsegg", "Тагаз", "SsangYoung" ...
-- если тип брэнда не понадобится (что весьма вероятно), то надо его похарчить в тиши
CREATE TABLE [dbo].[tblVehicleTOBVehicleMark]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nvarchar(32) NOT NULL, -- это надпись которую видит (сразу) пользователь в GUI
Comment nvarchar(max) NULL, -- некое средней длины доп. пояснение
BrandType uniqueidentifier references tblVehicleDICBrandType(Id) null
)
-- класс машин или группа моделей
-- на самом деле это в простонародье как раз модель
-- надо бы переименовать в будущем чтобы не путаться
-- например: "C", "E", "3", "A8"
-- внимание! СООТВЕТСТВУЕТ НА САМОМ ДЕЛЕ МОДЕЛИ (В ТЕРМИНАХ auto.mail.ru)
CREATE TABLE [dbo].[tblVehicleTOBModelGroup]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nvarchar(32) NOT NULL, -- строка с надписью в интерфейсе
Comment nvarchar(max) NULL, -- некое дополнительное пояснение
Mark uniqueidentifier REFERENCES tblVehicleTOBVehicleMark(Id) NOT NULL -- марка машины
)
-- модель машины, 1 марка машины соответствует N моделям транспортного средства
-- например, "E36 335i MT"
-- в полное название конкретной модели входит:
-- название корпуса (производительское, если есть, например E45),
-- объем двигателя,
-- буквы типа двигателя (если есть),
-- остальные буквы обозначающие модификацию
-- внимание! СООТВЕТСТВУЕТ НА САМОМ ДЕЛЕ МОДИФИКАЦИИ (В ТЕРМИНАХ auto.mail.ru)
CREATE TABLE [dbo].[tblVehicleBOBModel]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
Value nvarchar(70) NOT NULL, -- название модели, полное
Comment nvarchar(max) NULL, -- некое длинное пояснение
ModelGroup uniqueidentifier REFERENCES tblVehicleTOBModelGroup(Id) NOT NULL, -- класс/группа моделей
VehicleParams uniqueidentifier REFERENCES [tblVehicleBOBVehicleParams](Id) NULL, -- ссылка на параметры ТС
-- фиг его знает почему, но оно тут :)
-- это придумал не я, я его хотел зпихнуть в tblVehicleBOBVehicle
-- ну и ладно сами себе карлосы кастанеды
IsRussianProduction uniqueidentifier REFERENCES tblVehicleDICRussianProduction(Id) NULL, -- российское производство
LastChangeDate datetime2
)
-- серия выпуска для модели, одной модели может соответствовать много серий или ни одной
CREATE TABLE [dbo].[tblVehicleBOBSeries]
(
Id uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
SeriesLabel nvarchar(16) NULL, -- краткое обозначение серии для ориентации в таблице
Comment nvarchar(max) NULL, -- некий длинный коментарий или пояснение для серии
Model uniqueidentifier REFERENCES tblVehicleBOBModel(Id) NOT NULL, -- модель машины
ProdBegDate date NOT NULL, -- дата начала производства этой серии
ProdEndDate date NOT NULL, -- дата конца производства этой серии
VINIsReq bit NOT NULL, -- признак необходимости ввода VIN для этой серии
ChassisNumIsReq bit NOT NULL, -- признак необходимости ввода номера шасси для этой серии
VINRegExp nvarchar(1024) NULL, -- строка с рег. выраженим для проверки VIN
ChassisNumRegExp nvarchar(1024) NULL, -- строка с рег. выраженим для проверки номера шасси
LastChangeDate datetime2
)
Это скрипт целиком в виде одного файла - CarDB_Vehicle.sql (18,46 kb).
А это скрипты создания каждой отдельной таблицы - CarDBVehicleByTable.zip (9,64 kb),
для использования в проекте базы данных в солюшене.
Тэги: tsql
Video: Motor Trend suggests Tesla Model S may be most important new car since Ford Model T 2012-10-26 23:58:00
Filed under: EV/Plug-in, Tesla Motors, Videos
"It may very well be the most important new car since ...
+ развернуть текст сохранённая копия
Filed under: EV/Plug-in, Tesla Motors, Videos
"It may very well be the most important new car since the Model T."
That's the summation of the latest video from Motor Trend and its Ignition video series, speaking of the Tesla Model S. Though the buff ...
Тэги: categorized, ev/plug-in, motor, tesla, video
Report: NADA asking to meet with Tesla over retail store legal questions 2012-10-25 16:59:00
Filed under: EV/Plug-in, Tesla Motors, USA
In this case, NADA certainly doesn't mean "nothing."
...
+ развернуть текст сохранённая копия
Filed under: EV/Plug-in, Tesla Motors, USA
In this case, NADA certainly doesn't mean "nothing."
The National Automobile Dealers Association (NADA), which represents 16,000 new-vehicle dealers, is looking to meet with executives at Tesla Motors over t...
Тэги: categorized, ev/plug-in, motor, tesla, usa
Главная / Главные темы / Тэг «tsql»
|
Взлеты Топ 5
Падения Топ 5
|