0 / 0 / 0
Регистрация: 10.05.2016
Сообщений: 16
1

Проектирование БД

08.08.2019, 11:36. Показов 1918. Ответов 12
Метки нет (Все метки)

Добрый день, господа!

Сам я еще новичок в этом деле, поэтому прошу помощи в проектировании небольшой базы данных которую планирую использовать в приложении с Entity Framework 6.

Суть задачи: Есть список сотрудников и список оборудования. Нужно построить модель, так чтобы по каждому сотруднику можно было посмотреть какое оборудование находится у него на балансе в текущий момент, и какое было раньше. Когда он его получал, и когда сдал назад.

Вот с этими датами получения и датами сдачи у меня и проблема. Я никак не могу понять куда именно их поместить в модели.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.08.2019, 11:36
Ответы с готовыми решениями:

Проектирование БД
Добрый день всем. Задали создать приложение на свободную тему с БД(MVS + MS Server), решил сделать...

Проектирование БД
Здравствуйте. Нужна помощь в проектировании БД под приложение. Задание такое: Система Приемная...

Проектирование БД
Никак не нарисую себе правильную модель. Вот у меня есть талцица с данными о товаре (у каждого...

Проектирование БД
Добрый день! Лабораторную задали, она такая. Нужно спроектировать БД: в каждой квартире стоит...

12
1429 / 856 / 458
Регистрация: 14.04.2015
Сообщений: 3,263
08.08.2019, 11:53 2
Лучший ответ Сообщение было отмечено Odis25 как решение

Решение

Odis25, вот и вся твоя модель (одна историчная таблица):
Employee_IdInventory_NEffective_DtEnd_Dt
1111123-b01.01.201931.12.9999
1111123-с01.01.201931.12.9999
2221124-a01.01.201901.02.2019
3331124-a01.02.201931.12.9999
1
0 / 0 / 0
Регистрация: 10.05.2016
Сообщений: 16
08.08.2019, 12:01  [ТС] 3
То есть база будет выглядеть примерно так?
0
Миниатюры
Проектирование БД  
1429 / 856 / 458
Регистрация: 14.04.2015
Сообщений: 3,263
08.08.2019, 12:24 4
Лучший ответ Сообщение было отмечено Odis25 как решение

Решение

Odis25, да
1
0 / 0 / 0
Регистрация: 10.05.2016
Сообщений: 16
08.08.2019, 13:35  [ТС] 5
Благодарю!
0
0 / 0 / 0
Регистрация: 10.05.2016
Сообщений: 16
13.08.2019, 10:41  [ТС] 6
Уважаемый AndreyVorobey, все таки у меня остались некоторые сомнения. Сперва я думал что получится что-то типа картинки постом выше, но теперь сомневаюсь. Ведь тогда получится что один сотрудник не может брать одно оборудование два раза. Типа взял, попользовался, сдал. Потом взял еще раз. Или я ошибаюсь?
0
Эксперт MS Access
16345 / 6782 / 1487
Регистрация: 21.06.2012
Сообщений: 12,519
13.08.2019, 10:54 7
Цитата Сообщение от Odis25 Посмотреть сообщение
Потом взял еще раз. Или я ошибаюсь?
Нет. Ну так добавьте в ключевое поле дату, время взятия.
1
1429 / 856 / 458
Регистрация: 14.04.2015
Сообщений: 3,263
13.08.2019, 11:05 8
Odis25, почему не сможет? в таблице же указаны Receiving и Retrieving
0
0 / 0 / 0
Регистрация: 10.05.2016
Сообщений: 16
13.08.2019, 11:37  [ТС] 9
ltv_1953, Да, я тоже подумал о таком варианте, но насколько это правильный подход с точки зрения проектирования БД? Возможно правильнее будет сделать отдельные таблицы для имеющегося у сотрудника оборудования и отдельную таблицу для используемого ранее?

AndreyVorobey, Разве не получится так, что в этом даты для одного сотрудника и одного устройства будут перезаписываться? Например девайс с Id = 1 получен 01.01.1999 и его вернули 02.01.1999. Если этот же сотрудник возьмет этот же девайс второй раз, то можно будет лишь перезаписать существующую запись а не добавить новую. Я имел ввиду это.
Хотя вариант предложенный ltv_1953 в принципе решает подобное затруднение.
0
Эксперт MS Access
16345 / 6782 / 1487
Регистрация: 21.06.2012
Сообщений: 12,519
13.08.2019, 12:10 10
Цитата Сообщение от Odis25 Посмотреть сообщение
Возможно правильнее будет сделать отдельные таблицы для имеющегося у сотрудника оборудования и отдельную таблицу для используемого ранее?
Зачем? Есть одна таблица "движение оборудования", ее хватает, запросами все можно из нее вытащить: что у кого сейчас, что бралось конкретным сотрудником, кто брал конкретное оборудование ... .
1
1429 / 856 / 458
Регистрация: 14.04.2015
Сообщений: 3,263
13.08.2019, 12:17 11
Odis25, по какой причине не возможен такой вариант?
Employee_IdInventory_NEffective_DtEnd_Dt
1111123-a01.01.201902.01.2019
1111123-a03.01.201931.12.9999
сам себе усложняешь жизнь.
как ты будешь вести историю по оборудованию, когда он брал и сдавал, если будешь затирать инфу по нему?
в этой таблице хранятся историчные данные, и update происходит только на дату возврата. все остальное - insert.
1
0 / 0 / 0
Регистрация: 10.05.2016
Сообщений: 16
13.08.2019, 13:56  [ТС] 12
ltv_1953, AndreyVorobey, Спасибо за ответы, значит подводя итоги: оставляю предыдущую структуру из трех таблиц, с тем исключением что добавляю поле даты выдачи в комплексный ключ?
0
1429 / 856 / 458
Регистрация: 14.04.2015
Сообщений: 3,263
13.08.2019, 14:00 13
Odis25, не вижу смысла в этой операции.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.08.2019, 14:00

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Проектирование БД.
Ставится задача спроектировать базу данных для секретаря кегельной лиги небольшого городка,...

Проектирование БД
Предыстория: Когда то я написал для себя программу "органайзер" на Qt. Она хранила две таблицы...

Проектирование БД
Добрый день. Полноценного опыта проектирования нет. Только учебные проекты. Суть в следующем:...

Проектирование БД
Две таблицы могут ли иметь две связи между собой ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.