Варианты соглашений по именованию объектов в БД

01.11.2009 21:07 / Артём Волк / 1784 просмотра / ...

Несколько разных схем именования объектов в БД. Для примера будет взята база гипотетического блога, хранящая информацию о следующих сущностях: записях (posts), категориях (category) и пользователях (users). Один пост может попадать в одну или несколько категория (связь many-to-many), у одного поста всегда один автор (связь one-to-many).

Во всех вариантах первичные ключи будут обозначены звёздочкой, вторичные — символом плюса.

«Многословный» вариант

Его можно использовать практически на любой БД, если не используется ORM. Для промежуточных таблиц можно сокращать имена по первым буквам, чтобы оставить имена полей в пределах разумного

Posts			Categories			PostCategories			Users
------			----------			--------------			-----
NPost(*)		NCategory(*)		NPC(*)					NUser(*)
PostTitle		CategoryTitle		PCNPost(+)				UserLogin
PostDate							PCNCategory(+)			UserPassword
PostText													UserName
PostNUser(+)

LINQ-style

При использовании LINQ удобно использовать следующую схему, чтобы созданные в LINQ-дизайнере объекты имели названия свойств, соответствующие принятым в .NET Framework'е соглашениям.

Posts			Categories			PostCategories			Users
-----			----------			--------------			-----
Id(*)			Id(*)				Id(*)					Id(*)
Title		 	Title				PostId(+)				Login
Date								CategoryId(+)			Password
Text													 	Name
UserId(+)

*nix-style

Подобную схему именования удобно использовать для MySQL в сочетании с ORM или без него.

posts			categories			post_categories			users
-----			----------			---------------			-----
id(*)			id					id(*)					id(*)
title		 	title				post_id(+)				login
date								category_id(+)			password
text													 	name
user_id(+)