|
0 / 0 / 0
Регистрация: 06.05.2018
Сообщений: 65
|
|
Нужны советы по проектированию Базы данных в Access!02.04.2019, 23:15. Показов 2318. Ответов 20
Метки нет (Все метки)
Здравствуйте!
Имеется таблица 1, содержащая следующие поля: 1. № п/п 2. ФИО 3. Отдел 4. Заводской номер планшета 5. Планшет поврежден (логическое поле- да/нет) 6. Сотрудник уволен (логическое поле - да/нет) 7. Сотрудник в декрете (логическое поле - да/нет) И таблица № 2: 1. № п/п 2. ФИО 3. Отдел 4. Заводской номер планшета 5. Планшет поврежден (логическое поле- да/нет) 6. Сотрудник уволен (логическое поле - да/нет) 7. Сотрудник в декрете (логическое поле - да/нет) 8. Дата изменений 9. Примечание Сама база создается для учета данных планшетов, которые выдаются сотрудникам, а именно - где находятся на данный момент, в каком отделе, у какого сотрудника. При изменении или добавлении данных в любом поле таблицы, измененное поля или добавленное поле автоматически добавляются новой строкой в аналогичную архивную таблицу, с автоматическим проставлением даты изменений. Реализовано это с помощью именованных макросов в Access. Вроде бы все работает и по архивной таблице, используя фильтры, можно просмотреть все изменения, касаемые данного планшета или сотрудника. Но: когда заполняешь первую таблицу и ,случайно, кликнешь мышью не в том месте, строка, которую заполнили не до конца, добавляется в архивную (таблицу № 2) и при дальнейшем редактировании исходной строки таблицы №1 - она также добавляется в архивную таблицу № 2 и в результате в таблице № 2 появляются ненужные дублирующиеся строки. 1 вопрос: Как сделать так, чтобы данные добавлялись в архивную через кнопку "внести изменения"? Возможно ли это при условии использования именованных макросов (события после добавления или изменения). 2 вопрос: Знающие люди подсказали,что структура таблицы у меня неправильная, что нужно вместо одной таблицы №1 создать несколько связанных таблиц. В общем подскажите, пожалуйста, опираясь на свой опыт, как бы вы спроектировали данную базу? 3 вопрос: Есть ли смысл перейти для создания данной базы перейти на другую СУБД, например, MySQl?
0
|
|
| 02.04.2019, 23:15 | |
|
Ответы с готовыми решениями:
20
Вопрос по проектированию базы данных Курсовой проект по проектированию базы данных в СУБД Assecc Класс редактирования данных. Нужны советы по реализации |
|
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
|
|
| 03.04.2019, 07:05 | |
|
AEvgeniyev,
По сути у вас одни и те же данные в двух таблицах. Я бы сделал так: Таблица 1. 0.Счетчик 1. № п/п 2. ФИО 3. Отдел 4. Сотрудник статус(уволен, в декрете, работает и т.д.) И таблица № 2: 0. Счетчик 1. № п/п 2. Внешний ключ для связи с первой таблицей (1-к-М) 4. Заводской номер планшета 5. Планшет статус (поврежден, в работе, в ремонте, на складе) 6. Дата изменений 7. Примечание Т.е. мы видим какие планшеты были у сотрудников. Но можно и поменять их местами, сделать планшеты основной, а сотрудников подчиненной. Ну и таблицы справочники.
0
|
|
|
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
|
|
| 03.04.2019, 07:16 | |
|
Тут наверное нужна ещё 3-я (промежуточная) подчинённая к планшету и сотруднику табличка, типа - статус планшета, ибо раз есть даты, то они могут менятьс и всегда можно проверить историю, планшет может передаваться от одного сотрудника другому, ломаться и даже по непроверенным слухам - ремонтироваться или заменяться детальки.
0
|
|
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
|
|
| 03.04.2019, 09:04 | |
|
Третья - РаспределениеПланшетов логичнее назвать.
Для чего в таблицах номер по порядку? В Акцессе в таблицах записи не идут по какому-либо порядку, это не Эксель. Порядки нужно делать в отчётах, запросах, выводе в эксель, возможно формах и т.д.
0
|
|
|
0 / 0 / 0
Регистрация: 06.05.2018
Сообщений: 65
|
|
| 03.04.2019, 09:11 [ТС] | |
|
Номер по порядку я уберу)
А как правильно сделать именно архивную таблицу, наверное это будет таблица 3, отображающую историю или стутс планшета и т.д, чтобы по ней в любой момент времени можно было посмотреть какие планшеты у какого сотрудника были раньше или статусы планшета раньше и т.д. Как такие таблицы обычно делаются? У меня просто нет опыта в создании архивных таблиц. При этом хотелось бы, чтобы обновления в архивной таблице были автоматическими.
0
|
|
|
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
|
|
| 03.04.2019, 09:40 | |
|
Таблицы не обновляют, их дополняют новыми записями.
А динамически обновлять можно запросы, созданные на основе таблицы или нескольких таблиц, в которых можно сортировать и отсеивать не нужное фильтрами и оставляя нужное с расчетами и прочими статистическими данными.
0
|
|
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
|
||
| 04.04.2019, 03:13 | ||
Может потому что не существует таких таблиц? У вас есть справочник Люди и справочник Железки, создайте таблицу фактов и обзовите её РаспределениеЖелезок, в ней указывайте кодЛюдя и кодЖелезки, дату выдачи, дату приёма, статус и т.д.
0
|
||
|
0 / 0 / 0
Регистрация: 06.05.2018
Сообщений: 65
|
|
| 04.04.2019, 13:17 [ТС] | |
|
Спасибо всем за ответы
![]() Добавлено через 21 минуту alvk, тогда у меня вопрос, наример я создал три таблицы , как вы посоветовали, и у меня ,к примеру, получилось следующее в третьей таблице Код Людя (Иванов И.И. С, код -2), Код железки (Samsung,зав. √ 12345, код -3) , дата выдачи, дата приема, статус( находится на данный момент у сотрудника или нет) В следующий раз, когда придет данный Иванов И.И и принесет мне данный планшет, а я отдам данный планшет Петрову В.В., то для того, чтобы сохранилась история о том у каких сотрудников был данный планшет мне нужно добавить новую запись в данную таблицу с тем же самым планшетом , только у другого сотрудника? А потом у сотрудника Иванова И.И менять вручную статут о том, что планшета у него на данный момент нет? Так получается нужно сделать?
0
|
|
|
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
|
|
| 04.04.2019, 13:29 | |
|
0
|
|
|
12066 / 5849 / 1494
Регистрация: 05.10.2016
Сообщений: 16,440
|
||
| 04.04.2019, 13:30 | ||
|
При возврате проставляйте там дату возврата и другое ....
0
|
||
|
0 / 0 / 0
Регистрация: 06.05.2018
Сообщений: 65
|
|
| 19.04.2019, 00:44 [ТС] | |
|
Спасибо огромное всем за ответы.
Теперь появился другой вопрос: Значение поля "сотрудник" таблицы "Распределение планшетов" берется подстановкой из таблицы "Сотрудники", а в таблице "Сотрудники" поле "Подразделение" берется из таблицы "Список подразделений". Получается, как-бы, подстановка из подстановки. Так вот при выборе сотрудника в таблице "Распределение планшетов" , к примеру, "Иванова И.С. вместо отображения названия подразделения отображается его код, равный 4. Мне же нужно,чтобы отображалась надпись - Иванов И.С. Кадры. Так-как сложно по коду ориентироваться из какого сотрудник подразделения. Искал решения по форуму, по аналогичным темам, но ответа не нашел. Говорят не использовать подстановку в таблицах, а использовать в формах. Но когда создаешь форму на основе таблиц - результат тот же, отображается код, а не название подразделения. Как быть, что делать? Заранее спасибо за ответ Прилагаю тестовую версия базы.
0
|
|
|
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
|
|
| 19.04.2019, 05:19 | |
|
AEvgeniyev, в свойстве поля со списком указать
Количество столбцов - 2 Присоединенных столбец - 1 Ширина столбцов - 0;4 Так как ширина поля с кодом равна нулю, то его видно не будет, а будет видно следующее поле, ширина которого не равна нулю.
0
|
|
|
0 / 0 / 0
Регистрация: 06.05.2018
Сообщений: 65
|
|
| 19.04.2019, 08:42 [ТС] | |
|
VinniPuh, попробовал, все то же самое, при выоборе значения в поле подстановки отображается та же надпись : Иванов И.С 4.
Мне же нужно, чтобы при выборе значения из выпадающего списка было видно:Иванов И.С. Кадры.Это нужно для наглядности, так как может быть несколько Ивановых И.С. и при выборе значения из выпадающего списка было наглядно видно из какого он подразделения А столбец с шириной 0см. у меня там уже есть - это ключевое поле id, оно скрыто
0
|
|
|
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
|
|
| 19.04.2019, 08:50 | |
|
AEvgeniyev, добавьте в запрос поля со списком таблицу, где есть слово кадры и перетяните данное поле вместо кода.
Ну типа в режиме конструктора запроса.
0
|
|
|
0 / 0 / 0
Регистрация: 06.05.2018
Сообщений: 65
|
|
| 19.04.2019, 09:30 [ТС] | |
|
VinniPuh, я сделал так как вы порекомендовали, если правильно понял, но при добавлении в запросе новой позиции ругается на ошибку ядра субд.
Пример во вложении
0
|
|
|
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
|
|
| 19.04.2019, 09:34 | |
|
AEvgeniyev, посмотреть не могу, до вечера на планшете.
Может кто другой глянет. Добавлено через 59 секунд И кстати, таблицы связаны в схеме данных. Если нет, то нужно связать.
0
|
|
|
0 / 0 / 0
Регистрация: 06.05.2018
Сообщений: 65
|
|
| 19.04.2019, 09:49 [ТС] | |
|
VinniPuh, таблицы связаны в схеме данных, спасибо, буду ждать
0
|
|
|
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
|
|
| 19.04.2019, 10:02 | |
|
AEvgeniyev, можете показать на картинке, как у вас выглядит источник строк для данного поля со списком, ну типа запрос в режиме конструктора.
А то у меня вдобавок ещё и акцесс 2000 и ваш пример может не открыться.
0
|
|
|
0 / 0 / 0
Регистрация: 06.05.2018
Сообщений: 65
|
|
| 19.04.2019, 14:21 [ТС] | |
|
VinniPuh, картинки приложил в архиве. Кажется разобрался с помощью Вашего совета организовать через запрос, а ругался на ошибку ядра из за того, что я в запросе не все поля запрлнял. В итоге коды не исчезли,но при выборе сотрудника автоматически заполняется поле "подразделение". Так в итоге должно быть или есть какие другие пути решения вопроса?
0
|
|
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
|
|||
| 19.04.2019, 15:31 | |||
|
Делайте поля со списками на формах и наслаждайтесь.
0
|
|||
| 19.04.2019, 15:31 | |
|
Помогаю со студенческими работами здесь
20
VC++. Базы данных Access 97 -> Access 2000 while и циклы для вывода из базы данных зачем нужны? Какой формат базы данных DSN Access (атрибуты и типы данных)? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|