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

Поиск

Категории

Облако тегов

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

MS SQL Server

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


USE [CarDB]
GO

-- данные водительских прав
-- кроме общей информации о человеке хранимой в tblPersonBOBPerson
CREATE TABLE [dbo].[tblPersonBOBDriverLicence]
(
	Id          uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL, 
	Comment     nvarchar(max)			NULL, -- некое доп. пояснение
	
	Category    nchar(1)				NULL, -- категория прав - буква
	Series      nvarchar(8)				NULL, -- серия прав
	Number      nvarchar(16)			NOT NULL, -- номер прав
	WhoIsIssuer nvarchar(512)			NULL, -- кто  выдал	
	IssueDate   date					NULL, -- дата выдачи
	ExpireDate  date					NULL, -- дата окончания действия
	
	YearsOfExperience tinyint			NULL, -- стаж вождения

	PreviousSeries      nvarchar(8)		NULL, -- серия предыдущих прав
	PreviousNumber      nvarchar(16)	NULL, -- номер предыдущих прав
	LastChangeDate datetime2
)
GO

-- дополнительные паспортные данные
-- основные данные о человеке хранятся в tblPersonBOBPerson
CREATE TABLE [dbo].[tblPersonBOBPassport]
(
	Id          uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL, 
	Comment     nvarchar(max)    NULL, -- некое доп. пояснение
	
	Series      nvarchar(8)  NOT NULL, -- серия паспорта
	Number      nvarchar(16) NOT NULL, -- номер паспорта
	IssueDate   date             NULL, -- дата выдачи
	WhoIsIssuer nvarchar(max)    NULL, -- кто выдал
	
	AddressOfResidence    uniqueidentifier NULL, -- адрес постоянной прописки
	AddressOfRegistration uniqueidentifier NULL, -- адрес временной регистрации
	LastChangeDate datetime2
)
GO

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

-- семейное положение человека
CREATE TABLE [dbo].[tblPersonDICMaritalType]
(
	Id      uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL, 
	Value   nvarchar(24) NOT NULL,
	Comment nvarchar(max) NULL
)
GO

-- социальный статус человека: VIP, обычный лох
-- человек может быть клиентом, доверенным лицом и т.п.
CREATE TABLE [dbo].[tblPersonDICSocialStatus]
(
	Id      uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL, 
	Value   nvarchar(24)  NOT NULL, -- название типа подакции 
	Comment nvarchar(max) NULL  -- некое длинное пояснение
)
GO

-- человек (персона) в системе
CREATE TABLE [dbo].[tblPersonBOBPerson]
(
	Id              uniqueidentifier PRIMARY KEY DEFAULT NEWSEQUENTIALID() ROWGUIDCOL, 
	Comment         nvarchar(max)    NULL, -- некое доп. пояснение
	
	FirstName       nvarchar(64) NOT NULL, -- имя
	Surname         nvarchar(64) NOT NULL, -- фамилия
	PatronymicName  nvarchar(64)     NULL, -- отчество
	
	Gender 		uniqueidentifier REFERENCES tblPersonDICGender(Id) NULL,   -- пол 
	Marital		uniqueidentifier REFERENCES tblPersonDICMaritalType(Id) NULL,  -- семейный статус
	BirthDate       date             NULL,                                         -- дата рождения  
	Children        tinyint          NULL,                                         -- количество детей
	
	PrivateContacts uniqueidentifier NULL, -- свои контакты (без места)
	CurrLivingPlace uniqueidentifier NULL, -- текущее место жительства
	
        -- паспортные данные дополнительные
	AddPassportData uniqueidentifier REFERENCES tblPersonBOBPassport(Id)      NULL, 	

        -- данные водительских прав
	AddDriveLicData uniqueidentifier REFERENCES tblPersonBOBDriverLicence(Id) NULL, 

	SocialStatus    uniqueidentifier REFERENCES tblPersonDICSocialStatus      NULL, -- VIP или обычный
	
	SybaseIdAc_member numeric(16,0) NULL,
	LastChangeDate datetime2
)
go 

create index ind_tblPersonBOBPerson_Surname on tblPersonBOBPerson(Surname)
go 
человек паспорт права в БД

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

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

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


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

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

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

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




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


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