|
|
|
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
|
|||
|---|---|---|---|
|
#18+
Есть здесь подобные темы, там где Тенцера обсуждали, но в итоге никчему не приходили. Хотелось бы создать такую БД, чтоб потом не пришлось переделывать структуру таблиц, ну т.е. универсальную, чтоб добавление чего-л. не ломало структуру, и отлично вписывалось. Работа ведется на Access. Надеюсь это не имеет значения, мне нужна не тех. реализация а логика, построить правильно таблицы. На форуме Access спрашивал-молчат. Попробую здесь. Задача: это будет БД, в которой будет отражаться статистика посещений ЧЗ библиотеки института. Вопрос в отражении сервисов, предоставленных читателю. Т.е. должен быть учет вида работ: 1.Выдача книги 2.Здача книги 3.Работа за компьютером 4.Распечатка 5.Ксерокопирование 6.Консультация(предоставление помощи по вопросам) Но проблема в детализации каждого из сервисов, например: 1.Выдача книги -- имеет раздел знаний, которому пренадлежит книга 2.Здача книги -- ко-во зданных книг 3.Работа за компьютером -- что делал? Сидел в интернете, искал госты в Зодчем, рылся в эл. каталоге 4.Распечатка -- ко-во страниц 5.Ксерокопирование -- ко-во страниц 6.Консультация(предоставление помощи по вопросам) тут можно просто да/нет или что-то еще. И как быть с отражением этих видов работ, я не знаю. Думал создать для каждого сервиса свою табл. чтоб значения забивать, но этот вариант какой-то деревянный. Помогите плз. Можно что почитать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2008, 10:59 |
|
||
|
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
|
|||
|---|---|---|---|
|
#18+
the_ra... И как быть с отражением этих видов работ, я не знаю. Думал создать для каждого сервиса свою табл. чтоб значения забивать, но этот вариант какой-то деревянный. Возможно, я не правильно понял проблему. Используйте те таблицы, которые есть. Для каждого нужного сервиса на базе этих таблиц создаете представление (VIEW), которое содержит необходимые сервису данные. Сервисы на получение данных работают только с представлениями, о существовании таблиц понятия не имеют. При изменении структур таблиц меняется только текст VIEW, исходный текст сервиса остается прежним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2008, 12:05 |
|
||
|
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
|
|||
|---|---|---|---|
|
#18+
Задача состоит в том, чтоб библиотекарь, обслуживающий в данный момент посетителей отмечал каждому посетителю виды предоставленных читальным залом сервисов. Есть сводная табл. Посещения в которой: 1.ID 2.Дата 3.ФИО(из справочника по ключу) 4.Время начала работы 5.Время конца работы А Виды обслуживания будут отмечатся в дочерней табл., которая связана с табл. Посещения один ко многим. Выглядеть будет подобно: 1.ID 2.ID Сервиса(сервисы будут в отдельном справочнике) 3.????????????????????????????? А вопрос, как организовать ввод данных, когда они имеют с одной стороны одинаковую сущность(они все явл. видами предоставленных услуг), а с другой стороны имеют разные атрибуты, уточняющие предоставленную услугу, типо отксерил - 100 листов, взял книгу - раздел знаний Техническая литература, посидел за компом - лазил по интернету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2008, 13:17 |
|
||
|
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
|
|||
|---|---|---|---|
|
#18+
Как бы сделал я, в данном случае мы имеем таблицу видов обслуживания tbl_serv и таблицу пользователей tbl_users в отношении "многие-ко-многим", это реализуется через промежуточную таблицу tbl_user_session. В каждой таблице поля, соответствующие видам обслуживания, параметрам пользователя и атрибутам работы пользователя. Примерно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2008, 16:19 |
|
||
|
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
|
|||
|---|---|---|---|
|
#18+
the_raДумал создать для каждого сервиса свою табл. чтоб значения забивать, но этот вариант какой-то деревянный. Ессно деревянный. Лучше так: если список задач ограничен, то одна таблица с суммой всех полей. Если будет произвольно расширяться - то EAV, т.е. две таблицы - задач и св-в задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2008, 17:14 |
|
||
|
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
|
|||
|---|---|---|---|
|
#18+
YuriyRusinov Да так бы и сделал, если бы не разность атрибутов для каждого сервиса. Что например для печати значение 5 - это ко-во страниц, а для выдачи книги 5 - это внешний ключ из справочника Раздел знаний, и обозначает он, например Общественно-политические науки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2008, 17:47 |
|
||
|
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
|
|||
|---|---|---|---|
|
#18+
_мод Получается два способа реализовать: 1. сделать табл. Сервисы, и напихать туда все поля, чтоб можно было описать любой атрибут из всех возможных сервисов? 2. выстроить дерево? Т.е. табл. с одинаковыми атрибутами для всех, потом эта табл. разбивается на несколько, каждая из которых отражает специфичные атрибуты. Правильно я вас понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2008, 17:54 |
|
||
|
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
|
|||
|---|---|---|---|
|
#18+
Тады требуется более подробное описание задачи. С одной таблицей, пихая туда все и вся, очень быстро придешь к "блюду макарон". Т.е. необходимо выделение полей с возможными NULL-значениями. Я подсказал примерную канву, исходя из имеющегося. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2008, 18:22 |
|
||
|
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
|
|||
|---|---|---|---|
|
#18+
Так и зделаю, опишу полностью задачу. Это будет БД посещений читального зала библиотеки. Перечень таблиц и попутное объяснение: Табл.: Студенты - в этой табл. содержаться сведения о посетителях-студентах, ФИО, Группа, Категория(заочник, асп.,....). Эту табличку буду брать из БД Деканат приемной комиссии, т.е. ее делать нужно не будет, а потом использовать как справочник. Преподы/сотрудники - точно такая же как предыдущая, только без поля Группа. Тут начинается интересное. Генеральная - она будет сводить собственно посещение воедино. В эту табл. собираюсь впихнуть: 1. ID 2. Дата посещения 3. Время начала работы 4. Посетитель - из выпадающего списка по таблицам Студенты и Преподы/сотрудники с возможностью поиска по фамилии. Т.е. в интерфейсе ввода оператор вводит начало фамилии, список сам открывается и перекидывается на то место, где начинаются фамилии, и определяет конкретного человека. Оператор видит ФИО, программа сохраняет в это поле значение ID этого студа или препода/сотрудника. 5. Время конца работы - после ввода значения в это поле, посещение будет считаться закрытым. Теперь о обсуждаемом вопросе(Виды услуг оказанные библиотекой). Думал так: сделать еще одну таблицу Виды услуг , сделать ее подчиненной по отношению к Генеральной. Т.е. табл Виды услуг : 1.ID 2.Генеральная.ID - это поле имеет внешний ключ от поля ID генеральной табл., отношение один-к-многим. Т.к. у одного посещения может быть несколько видов услуг. 3.Услуга - Скорее всего это поле должно отражать вид услуги(печать, возвр. книги, ...) 4.Значение услуги - Это поле отражать значение услуги, в зависимости от ее вида, допустим если в поле 3 стоит Возврат книги, то в этом значение "3", обозначающее что вернули 3 книги, если в поле 3 стоит Ксерокопирование, то в этом поле стоит "41", что значит 41 лист Вот такая логика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2008, 19:54 |
|
||
|
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
|
|||
|---|---|---|---|
|
#18+
База тогда получится ненормализованная. Студентов и препов/сотрудников надо помещать в одну таблицу, а отличать по полю "Группа", у препов/сотрудников она будет NULL, в таблице "генеральная" следует сделать ID_user, ID_serv ссылающимися на соотв. поля таблиц "Вид услуги" "Посетители". Собственно остальное все правильно. Ну и я не уверен, что Access поддерживает такое, я бы сам пробовал MySQL или PostgreSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2008, 13:44 |
|
||
|
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
|
|||
|---|---|---|---|
|
#18+
the_raПолучается два способа реализовать: 1. сделать табл. Сервисы, и напихать туда все поля, чтоб можно было описать любой атрибут из всех возможных сервисов? Да the_ra 2. выстроить дерево? Т.е. табл. с одинаковыми атрибутами для всех, потом эта табл. разбивается на несколько, каждая из которых отражает специфичные атрибуты. Правильно я вас понял? Так тоже можно, но я имел виду подход, когда появление новых сервисов не будет требовать изменения структуры БД вообще - это EAV, т.е. в двух таблицах лежит любое число сервисов с любыми полями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2008, 14:51 |
|
||
|
Одинаковые по смыслу, но разные по значениям данные, нужна помощь
|
|||
|---|---|---|---|
|
#18+
YuriyRusinov База тогда получится ненормализованная Понял, исправлю. я не уверен, что Access поддерживает такое, я бы сам пробовал MySQL или PostgreSQL Дело в том, что я совсем новичок, это моя первая база, которая будет представлять что-то хоть более-менее серьезное. Пока в MY/Postgre соваться не хотелось бы. _мод когда появление новых сервисов не будет требовать изменения структуры БД вообще - это EAV Круто, сейчас гляну, что это за чудо такое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2008, 16:08 |
|
||
|
|

start [/forum/topic.php?fid=32&gotonew=1&tid=1543804]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
12ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 523ms |

| 0 / 0 |
