powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Одинаковые по смыслу, но разные по значениям данные, нужна помощь
12 сообщений из 12, страница 1 из 1
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
    #35382020
the_ra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть здесь подобные темы, там где Тенцера обсуждали, но в итоге никчему не приходили. Хотелось бы создать такую БД, чтоб потом не пришлось переделывать структуру таблиц, ну т.е. универсальную, чтоб добавление чего-л. не ломало структуру, и отлично вписывалось. Работа ведется на Access. Надеюсь это не имеет значения, мне нужна не тех. реализация а логика, построить правильно таблицы. На форуме Access спрашивал-молчат. Попробую здесь.
Задача: это будет БД, в которой будет отражаться статистика посещений ЧЗ библиотеки института. Вопрос в отражении сервисов, предоставленных читателю. Т.е. должен быть учет вида работ:
1.Выдача книги
2.Здача книги
3.Работа за компьютером
4.Распечатка
5.Ксерокопирование
6.Консультация(предоставление помощи по вопросам)
Но проблема в детализации каждого из сервисов, например:
1.Выдача книги -- имеет раздел знаний, которому пренадлежит книга
2.Здача книги -- ко-во зданных книг
3.Работа за компьютером -- что делал? Сидел в интернете, искал госты в Зодчем, рылся в эл. каталоге
4.Распечатка -- ко-во страниц
5.Ксерокопирование -- ко-во страниц
6.Консультация(предоставление помощи по вопросам) тут можно просто да/нет или что-то еще.

И как быть с отражением этих видов работ, я не знаю. Думал создать для каждого сервиса свою табл. чтоб значения забивать, но этот вариант какой-то деревянный. Помогите плз. Можно что почитать.
...
Рейтинг: 0 / 0
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
    #35382263
ЮВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
the_ra...
И как быть с отражением этих видов работ, я не знаю. Думал создать для каждого сервиса свою табл. чтоб значения забивать, но этот вариант какой-то деревянный.

Возможно, я не правильно понял проблему.
Используйте те таблицы, которые есть.
Для каждого нужного сервиса на базе этих таблиц создаете представление (VIEW),
которое содержит необходимые сервису данные.
Сервисы на получение данных работают только с представлениями, о существовании таблиц понятия не имеют.
При изменении структур таблиц меняется только текст VIEW, исходный текст сервиса остается прежним.
...
Рейтинг: 0 / 0
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
    #35382538
the_ra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача состоит в том, чтоб библиотекарь, обслуживающий в данный момент посетителей отмечал каждому посетителю виды предоставленных читальным залом сервисов.
Есть сводная табл. Посещения в которой:
1.ID
2.Дата
3.ФИО(из справочника по ключу)
4.Время начала работы
5.Время конца работы

А Виды обслуживания будут отмечатся в дочерней табл., которая связана с табл. Посещения один ко многим. Выглядеть будет подобно:
1.ID
2.ID Сервиса(сервисы будут в отдельном справочнике)
3.?????????????????????????????

А вопрос, как организовать ввод данных, когда они имеют с одной стороны одинаковую сущность(они все явл. видами предоставленных услуг), а с другой стороны имеют разные атрибуты, уточняющие предоставленную услугу, типо отксерил - 100 листов, взял книгу - раздел знаний Техническая литература, посидел за компом - лазил по интернету.
...
Рейтинг: 0 / 0
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
    #35383196
YuriyRusinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как бы сделал я, в данном случае мы имеем таблицу видов обслуживания tbl_serv и таблицу пользователей tbl_users в отношении "многие-ко-многим", это реализуется через промежуточную таблицу tbl_user_session. В каждой таблице поля, соответствующие видам обслуживания, параметрам пользователя и атрибутам работы пользователя. Примерно так.
...
Рейтинг: 0 / 0
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
    #35383392
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
the_raДумал создать для каждого сервиса свою табл. чтоб значения забивать, но этот вариант какой-то деревянный.
Ессно деревянный. Лучше так: если список задач ограничен, то одна таблица с суммой всех полей. Если будет произвольно расширяться - то EAV, т.е. две таблицы - задач и св-в задач.
...
Рейтинг: 0 / 0
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
    #35383503
the_ra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuriyRusinov
Да так бы и сделал, если бы не разность атрибутов для каждого сервиса. Что например для печати значение 5 - это ко-во страниц, а для выдачи книги 5 - это внешний ключ из справочника Раздел знаний, и обозначает он, например Общественно-политические науки?
...
Рейтинг: 0 / 0
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
    #35383521
the_ra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_мод
Получается два способа реализовать:
1. сделать табл. Сервисы, и напихать туда все поля, чтоб можно было описать любой атрибут из всех возможных сервисов?
2. выстроить дерево? Т.е. табл. с одинаковыми атрибутами для всех, потом эта табл. разбивается на несколько, каждая из которых отражает специфичные атрибуты. Правильно я вас понял?
...
Рейтинг: 0 / 0
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
    #35383588
YuriyRusinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тады требуется более подробное описание задачи. С одной таблицей, пихая туда все и вся, очень быстро придешь к "блюду макарон". Т.е. необходимо выделение полей с возможными NULL-значениями. Я подсказал примерную канву, исходя из имеющегося.
...
Рейтинг: 0 / 0
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
    #35383769
the_ra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так и зделаю, опишу полностью задачу.
Это будет БД посещений читального зала библиотеки. Перечень таблиц и попутное объяснение:
Табл.:
Студенты - в этой табл. содержаться сведения о посетителях-студентах, ФИО, Группа, Категория(заочник, асп.,....). Эту табличку буду брать из БД Деканат приемной комиссии, т.е. ее делать нужно не будет, а потом использовать как справочник.
Преподы/сотрудники - точно такая же как предыдущая, только без поля Группа.
Тут начинается интересное.
Генеральная - она будет сводить собственно посещение воедино. В эту табл. собираюсь впихнуть:
1. ID
2. Дата посещения
3. Время начала работы
4. Посетитель - из выпадающего списка по таблицам Студенты и Преподы/сотрудники с возможностью поиска по фамилии. Т.е. в интерфейсе ввода оператор вводит начало фамилии, список сам открывается и перекидывается на то место, где начинаются фамилии, и определяет конкретного человека. Оператор видит ФИО, программа сохраняет в это поле значение ID этого студа или препода/сотрудника.
5. Время конца работы - после ввода значения в это поле, посещение будет считаться закрытым.

Теперь о обсуждаемом вопросе(Виды услуг оказанные библиотекой).
Думал так: сделать еще одну таблицу Виды услуг , сделать ее подчиненной по отношению к Генеральной. Т.е. табл Виды услуг :
1.ID
2.Генеральная.ID - это поле имеет внешний ключ от поля ID генеральной табл., отношение один-к-многим. Т.к. у одного посещения может быть несколько видов услуг.
3.Услуга - Скорее всего это поле должно отражать вид услуги(печать, возвр. книги, ...)
4.Значение услуги - Это поле отражать значение услуги, в зависимости от ее вида, допустим если в поле 3 стоит Возврат книги, то в этом значение "3", обозначающее что вернули 3 книги, если в поле 3 стоит Ксерокопирование, то в этом поле стоит "41", что значит 41 лист

Вот такая логика.
...
Рейтинг: 0 / 0
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
    #35384984
YuriyRusinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
База тогда получится ненормализованная. Студентов и препов/сотрудников надо помещать в одну таблицу, а отличать по полю "Группа", у препов/сотрудников она будет NULL, в таблице "генеральная" следует сделать ID_user, ID_serv ссылающимися на соотв. поля таблиц "Вид услуги" "Посетители". Собственно остальное все правильно. Ну и я не уверен, что Access поддерживает такое, я бы сам пробовал MySQL или PostgreSQL.
...
Рейтинг: 0 / 0
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
    #35385227
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
the_raПолучается два способа реализовать:
1. сделать табл. Сервисы, и напихать туда все поля, чтоб можно было описать любой атрибут из всех возможных сервисов?
Да
the_ra
2. выстроить дерево? Т.е. табл. с одинаковыми атрибутами для всех, потом эта табл. разбивается на несколько, каждая из которых отражает специфичные атрибуты. Правильно я вас понял?
Так тоже можно, но я имел виду подход, когда появление новых сервисов не будет требовать изменения структуры БД вообще - это EAV, т.е. в двух таблицах лежит любое число сервисов с любыми полями.
...
Рейтинг: 0 / 0
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
    #35385493
the_ra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuriyRusinov
База тогда получится ненормализованная
Понял, исправлю.
я не уверен, что Access поддерживает такое, я бы сам пробовал MySQL или PostgreSQL
Дело в том, что я совсем новичок, это моя первая база, которая будет представлять что-то хоть более-менее серьезное. Пока в MY/Postgre соваться не хотелось бы.
_мод

когда появление новых сервисов не будет требовать изменения структуры БД вообще - это EAV
Круто, сейчас гляну, что это за чудо такое.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Одинаковые по смыслу, но разные по значениям данные, нужна помощь
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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