Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / База данных и ЕР-модель / 6 сообщений из 6, страница 1 из 1
27.12.2014, 19:32
    #38844557
Rasin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База данных и ЕР-модель
Доброго времени суток. Сразу скажу, я в этом деле ни-ни. Но вот сюда пишу, чтобы помоги разобраться.
Начну с того что я составил ЕР-модель для базы данных "Кадры" (это рисунок с розовыми блоками).
Потом я делал этим таблицы через запросы в SQL. Не знаю почему я выбрал этот путь, но так уж сложилось
CREATE DATABASE Staff1
use Staff
CREATE TABLE StructuralSubdivision (idSubdivision int primary key, NameSubdivision nvarchar(MAX))
CREATE TABLE Post ( idSubdivision int foreign key references StructuralSubdivision (idSubdivision),idPost int, JobTitle nvarchar(MAX))
CREATE TABLE Human ( FullName nvarchar(MAX) primary key, FamilyComposition nvarchar(MAX), LengthOfService int, DateOfBirth date, PlaceOfresidence nvarchar(MAX), Phone int)
CREATE TABLE LaborContract (FullName nvarchar(MAX) foreign key references Human (FullNamef),idSubdivision int foreign key references StructuralSubdivision (idSubdivision) DateOfDrawing date, DateOfAdoption date, Salary int)

Вот что я написал, не уверен в правильности. Не, не так, я уверен в присутствии ошибки, не понять только где.
Помогите пожалуйста.
...
Рейтинг: 0 / 0
27.12.2014, 19:37
    #38844558
Rasin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База данных и ЕР-модель
ЕР-модель
...
Рейтинг: 0 / 0
27.12.2014, 22:54
    #38844624
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База данных и ЕР-модель
...
Рейтинг: 0 / 0
28.12.2014, 09:58
    #38844693
JeStone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База данных и ЕР-модель
Rasin
Код: sql
1.
2.
3.
4.
5.
6.
CREATE DATABASE Staff1
use Staff
CREATE TABLE StructuralSubdivision (idSubdivision int primary key, NameSubdivision nvarchar(MAX))
CREATE TABLE Post ( idSubdivision int foreign key references StructuralSubdivision (idSubdivision),idPost int, JobTitle nvarchar(MAX))
CREATE TABLE Human ( FullName nvarchar(MAX) primary key, FamilyComposition nvarchar(MAX), LengthOfService int, DateOfBirth date, PlaceOfresidence nvarchar(MAX), Phone int)
CREATE TABLE LaborContract (FullName nvarchar(MAX) foreign key references Human (FullNamef),idSubdivision int foreign key references StructuralSubdivision (idSubdivision) DateOfDrawing date, DateOfAdoption date, Salary int)



Закроем для начала глаза на ошибки в SQL, что касается самих сущностей:
1. Не используй в качестве ключа атрибуты сущностей (это касается FullName у Human), добавь поле id_human.
2. Зачем ты хранишь Phone в поле int? Ты их складывать планируешь? Поменяй на текстовое поле.
3. Почему зарплата в int? А копейки у тебя не хранятся?
4. Ну и твой SQL не соответствует тому, что ты называешь ER-моделью (на рисунке связи LaborContract с Human и Post), а в коде с Human и StructuralSubdivision.

А в целом, то что у тебя на рисунке вполне имеет право на существование при условии, что один человек может работать одновременно на нескольких должностях.
...
Рейтинг: 0 / 0
28.12.2014, 09:59
    #38844694
JeStone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База данных и ЕР-модель
JeStone,

хотя замечу, что в твоем случае нет никаких ограничений на то, что на одной должности не могут работать более одного человека. Решается связью 1 к 1 между таблицами должность-контракт
...
Рейтинг: 0 / 0
28.12.2014, 12:26
    #38844730
Rasin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База данных и ЕР-модель
Оно ? :)
CREATE DATABASE Staff1
use Staff
CREATE TABLE StructuralSubdivision (idSubdivision int primary key, nameSubdivision nvarchar(MAX) not null)
CREATE TABLE Post (idPost int primary key, idSubdivision int foreign key references StructuralSubdivision (idSubdivision) not null,
jobTitle nvarchar(MAX) not null)
CREATE TABLE Human (idHuman int primary key, fullName nvarchar(MAX) not null,familyComposition nvarchar(MAX) not null,
lengthOfService int not null, dateOfBirth date not null, placeOfresidence nvarchar(MAX) not null, Phone nvarchar(MAX) not null)
CREATE TABLE LaborContract ( idHuman int foreign key references Human (idHuman) not null, idPost int foreign key references Post (idPost) not null,
dateOfDrawing date not null, dateOfAdoption date not null, salary int not null)
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / База данных и ЕР-модель / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]