ГЛАВНАЯ     АРХИВ     НАПИСАТЬ АДМИНУ     ПОДПИСАТЬСЯ НА RSS     ВОЙТИ      

Поиск

Категории

Облако тегов

  << Предыдущий пост       Следующий пост >>  
От: kramer
24. октября 2012 23:11

ms sql server

Продолжаю серию практических постов о реализации различных структур в БД. В этом посте речь пойдет о таблицах описывающих владение автомобилем (транспортным средством). Начало серии смотри в этом Описания таблиц отвечающих за человека, паспорт, права (часть 1) посте. Оформление таблиц делалось в соответствии с Об одном из способов именования таблиц, представлений, хранимых процедур.... Единственное отличие это то, что все части и вспомогательные сущности помещаются в таблицы с "типом" TOB. Сначала скрипт будет идти просто как текст поста, чтобы вы могли посмотреть о чем идет речь. Потом будут диаграммы этой части БД. Потом скрипт целиком для накатывания на БД. И в конце архив с TSQL скриптами для каждой сущности в отдельности, для того чтобы их было удобно использовать в проекте базы данных в солюшене. Для простоты ссылки ведущие на таблицы, описания которых я не собираюсь публиковать, оформлены просто как значения типа идентификатор (в общем скрипте). В этом проекте это GUID (uniqueidentifier). Скрипты из последующих постов серии, будут, возможно, ссылаться на скрипты из предыдущих постов. Так что если вы захотите создать таблицы из некоторого поста в БД, то вам придется перед этим накатить скрипты из предыдущих постов (в некоторых случаях).

USE [CarDB]
GO

-- тип  покраски ТС
-- например: обычная, хамелеон, матовая, металик ...
CREATE TABLE [dbo].[tblVehOwnDICColoringType]
(
	Id      uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
	Value   nvarchar(16),      -- название типа покраски
	Comment nvarchar(max) NULL -- некое дополнительное пояснение	
)
GO

-- цвет покраски ТС - его описание 2-3 словами
-- например: кофе с молоком, navy, bianco, testa rossa, niger...
CREATE TABLE [dbo].[tblVehOwnDICColor]
(
	Id      uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
	Value   nvarchar(32),      -- название цвета, 2-мя - 3-мя словами 
	Comment nvarchar(max) NULL, -- некое дополнительное пояснение	
)
GO

-- тип владельца транспортного средства
-- например, физическое или юридическое лицо
CREATE TABLE [dbo].[tblVehOwnDICVehicleOwnerType]
(
	Id      uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
	Value   nvarchar(32) NOT NULL, -- это надпись которую видит (сразу) пользователь в GUI 
	Comment nvarchar(max) NULL     -- некое средней длины дополнительное пояснение
)
GO

-- страховая компания и ее параметры
CREATE TABLE [dbo].[tblVehOwnBOBKaskoInsurer]
(
	Id          uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
	CompanyName nvarchar(64) NOT NULL, -- это название компании которое видит пользователь в GUI 
	PhoneNumber nvarchar(12) NULL,     -- номер телефона call центра страховщика
	Comment     nvarchar(max) NULL     -- некое средней длины дополнительное пояснение	
)
GO

-- автомобильная страховка связана с владением (N страховок к 1-му владению)
CREATE TABLE [dbo].[tblVehOwnBOBKaskoInsurance]
(
    Id        uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
    Comment   nvarchar(max) NULL,    -- некое средней длины дополнительное пояснение	
	
    Number    nvarchar(32) NOT NULL, -- номер страховки
    Insurer   uniqueidentifier REFERENCES tblVehOwnBOBKaskoInsurer(Id) NOT NULL, -- страховая компания
    BeginDate date NULL, -- дата начала страхового периода
    EndDate   date NULL, -- дата окончания страхового периода
    
    -- владение во время которого застраховали
    Ownership uniqueidentifier NOT NULL, -- REFERENCES tblVehOwnBOBVehicleOwnership(Id)
    LastChangeDate datetime2
)
GO

-- владение конкретным экземпляром транспортного средства (N владений к 1-му ТС)
CREATE TABLE [dbo].[tblVehOwnBOBVehicleOwnership]
(
    Id      uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
    Comment nvarchar(max) NULL, -- коментарий к этому владению 	
	
    Vehicle        uniqueidentifier NOT NULL, -- транспортное средство REFERENCES tblVehicleBOBVehicle(Id)
	
    VehRegNumber   nvarchar(10) NULL, -- государственный регистрационный номер ТС
    PassprotNumber nvarchar(10) NULL, -- номер пасспорта транспортного средатва (номер ПТС)
    BeginDate      date NOT NULL,     -- дата начала владения транспортным средством
    EndDate        date NULL,         -- дата окончания владения транспортным средством
    Color          uniqueidentifier REFERENCES tblVehOwnDICColor(Id) NOT NULL,        -- цвет покраски ТС 
    ColoringType   uniqueidentifier REFERENCES tblVehOwnDICColoringType(Id) NOT NULL, -- тип  покраски ТС  
        
    VehOwnerType   uniqueidentifier REFERENCES tblVehOwnDICVehicleOwnerType(Id) NOT NULL,-- тип владельца
    VehicleOwner   uniqueidentifier NOT NULL, -- владелец
    
    CurrKaskoInsurance uniqueidentifier REFERENCES tblVehOwnBOBKaskoInsurance(Id) NULL,-- текущая страх-ка
	
    DealerCompany uniqueidentifier NULL, -- ссылка на компанию, продавшую машину
	
    SybaseIdAc_car numeric(16,0),
    LastChangeDate datetime2
)
GO
таблицы БД владение машиной

Это скрипт целиком в виде одного файла - CarDB_VehicleOwnership.sql (7,37 kb)

А это скрипты создания каждой отдельной таблицы - CarDB_VehicleOwnership.zip (3,47 kb), для использования в проекте базы данных в солюшене

Похожие записи


Вопросы на собеседовании C#, Net, ASP.NET, SQL
Продолжая тему вопросов на собеседовании. Нашел еще одну подборку. Оригинал лежит здесь . Перенес, чтобы не затерялось. Есть вполне вменяемые ответы (хотя, на некоторые вопросы ответил бы по-другому). Ответы находятся после списка вопросов, я их не менял. 23. Что такое шаблон проектирования Model/View/Controller? Как и зачем его применяют? 2...

Описания таблиц отвечающих за описание машины (часть 3)
Продолжаю серию практических постов о реализации различных структур в БД. В этом посте речь пойдет о таблицах описывающих марку, модель, модификацию машины, а также ее параметры. Начало серии смотри в этом Описания таблиц отвечающих за человека, паспорт, права (часть 1) посте. Оформление таблиц делалось в соответствии с Об одном из способов именования таблиц, пр...

Способы заработка на сайте
На этом блоге было много постов про производство и раскрутку сайтов. Но пока не было про заработок на них. Пора исправить этот недочет. Здесь будут описаны по возможности не фантастичные, и не супер низко прибыльные способы. Также упор будет сделан именно на организацию процесса, а не технических деталях, которых в обилии в интернете. Несмотря на то, что как пр...

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




biuquote
  • Комментарий
  • Предпросмотр
Loading


  Сохранить комментарий