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

Поиск

Категории

Облако тегов

acer ado.net amd asp.net c sharp c# cms css exceptions google html ipad iphone it бизнес javascript jquery linq microsoft mysql net nokia nokia lumia samsung seo silverlight sql surface tsql windows 8 windows blue windows phone windows rt xna безопасность библиотека вопросы на собеседовании интересные проекты интернет интернет магазин исключения книга книги компьютерная безопасность компьютерные игры контролы курсы по программированию логированние исключений мобильные приложения монетизация сайтов наушники новости новости it новости microsoft новости интернет новости технологий ноутбук ноутбуки обработка исключений оптимизация острова периферия планшет планшеты поддержка сайтов поисковое продвижение программы продвижение продвижение сайта продвижение сайтов рабство разработка игр разработка сайтов раскрутка сайта рекламные технологии смартфон смартфоны собеседование создание сайтов средства разработки туризм фриланс хостинг яндекс
  << Предыдущий пост       Следующий пост >>  
От: 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


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