Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как создать архив, подскажите какую структуру лучше выбрать 
:(
    Опции темы
Tanyaata
Дата 28.3.2009, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 28.2.2009

Репутация: нет
Всего: нет



У меня имеется база данных школ. каждой школе присвоен свой уникальный номер из 6 цифр.
В таблице, где хранятся данные об этой школе, уникальный номер является ключевым полем. Если данные по школе изменились, мне надо их записывать в рабочую таблицу, но и старые данные не терять. Причем нужна дата изменения.но он не даст записать школу с одинаковыми уникальными номерами. Как мне сохранять данные и потом быстро выбирать необходимые данные(в зависимости от даты) о школе и подсчитывать, допустим, количество школ в 2008 и количество школ в 2009 году(школа может закрыться или стать филиалом другой школы)

Это сообщение отредактировал(а) Tanyaata - 28.3.2009, 09:50
PM MAIL   Вверх
bopoha
Дата 28.3.2009, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Не стоит никогда опираться только на пользовательскую нумерацию. Я всегда опираюсь на уникальный счетчик.

В вашем случае можно завести отдельную таблицу с историей или бить таблицы по годам, если каждый год вы вносите информацию заново.
Я бы остановился бы на таблице с историей. Или еще можно разбить основную таблицу на две части основную и дополнительную, в которой будет записываться информация о школе и дата этой информации, со связью один-ко-многим.
PM MAIL WWW ICQ Skype GTalk   Вверх
Akina
Дата 28.3.2009, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(Tanyaata @  28.3.2009,  10:48 Найти цитируемый пост)
В таблице, где хранятся данные об этой школе, уникальный номер является ключевым полем.

Это - ошибка, которая и породила проблему.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Tanyaata
Дата 28.3.2009, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 28.2.2009

Репутация: нет
Всего: нет



Цитата
Akina Дата 28.3.2009, 18:40
Это - ошибка, которая и породила проблему


в течение года я должна использовать данные только из основной таблицы, которая заполняется каждый год в сентябре. но изменения могут происходить в течение всего года

Добавлено через 3 минуты и 46 секунд
Цитата

Или еще можно разбить основную таблицу на две части основную и дополнительную, в которой будет записываться информация о школе и дата этой информации, со связью один-ко-многим.


В принципе я так и сделала, но как соединить основную таблицу и дополнительную?

Добавлено через 5 минут и 42 секунды
понимаете, если я воспользуюсь счетчиком, то данные о школе могут добавить те же и получится, что в таблице будет две записи про одну школу с одинаковыми данными

Добавлено через 7 минут и 11 секунд
и что за таблица с историей?
PM MAIL   Вверх
Akina
Дата 28.3.2009, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(Tanyaata @  28.3.2009,  21:55 Найти цитируемый пост)
 если я воспользуюсь счетчиком, то данные о школе могут добавить те же и получится, что в таблице будет две записи про одну школу с одинаковыми данными

Нормальненько! а данные вы льёте в таблицу, принципиально их не проверяя?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bopoha
Дата 29.3.2009, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Основная таблица и дополнительная, назовем их теперь, таблицы школы и данные школ. Связаны по полю счетчики из таблицы школы, в таблице данные школ внешний ключ. Также в таблице данные школ должна быть дата внесения данных, чтобы можно было получить последнюю информацию.

С таблицей историей.
В этом случае таблиц тоже две, первая - актуальные данные, вторая - история. Связь по ключевому полю из первой таблицы (как и в первом варианте). В этом случае получение актуальных данных проще. 

Мне больше нравится второй вариант.

По поводу ключевых полей.
Счетчик гораздо лучше, чем пользовательский номер. В данном случае счетчик никто не видит и поменять не может, а вот пользовательский код пользователь может захотеть поменять и будет прав. Если пользовательский код использовать во внешних ключах, то получается отличный гемморой с заменой значения.
PM MAIL WWW ICQ Skype GTalk   Вверх
Tanyaata
Дата 2.4.2009, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 28.2.2009

Репутация: нет
Всего: нет



А как мне бороться с избыточностью данных? ведь данные могут добавить одинаковые. проверку делать при добавлении?

а при таблице истории: как мне потом найти закрытые школы.в таблице истории они будут, а в актуальных данных уже их нет. как их то связать?

Добавлено через 7 минут и 22 секунды
И скажите еще пожалуйста, как мне защитить базу данных. можно ли просто выложить на сервер, чтобы все пользовались-не будет конфликтов? и как мне любому открывшему сделать доступ только для чтения, без изменения данных в таблицах(только просмотр отчетов, форм и запросов), а 2 людям дать администраторские права. можно ли это сделать без подключения файла рабочей группы? Заранее спасибо за ответы. И спасибо за ответы на предыдущие вопросы
PM MAIL   Вверх
Akina
Дата 2.4.2009, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(Tanyaata @  2.4.2009,  19:21 Найти цитируемый пост)
как мне бороться с избыточностью данных? ведь данные могут добавить одинаковые. проверку делать при добавлении?

несомненно

Цитата(Tanyaata @  2.4.2009,  19:21 Найти цитируемый пост)
как мне потом найти закрытые школы.в таблице истории они будут, а в актуальных данных уже их нет

это - один из недостатков многотабличного хранения

Цитата(Tanyaata @  2.4.2009,  19:21 Найти цитируемый пост)
 как мне защитить базу данных

начните с разделения БД


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bopoha
Дата 3.4.2009, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Цитата(Tanyaata @  2.4.2009,  18:21 Найти цитируемый пост)
А как мне бороться с избыточностью данных? ведь данные могут добавить одинаковые. проверку делать при добавлении?


Я думаю лучше дать возможность пользователю самому решать, что он будет делать:
- Исправлять ошибку - редактирование без сохранения истории.
- Вносить новые сведенья - редактирование с предварительным сохранением предыдущих данных в истроию

Цитата(Tanyaata @  2.4.2009,  18:21 Найти цитируемый пост)
как мне потом найти закрытые школы.в таблице истории они будут, а в актуальных данных уже их нет. как их то связать?


В истории хранятся уже не актуальные данные. На то она и история. Связывать по ключевому полю из таблицы с актуальными данными. Закрытые школы могут быть в актуальных данных, т.к. это последнее состояние объекта.

Цитата(Tanyaata @  2.4.2009,  18:21 Найти цитируемый пост)
как мне защитить базу данных

От чего и от кого защищать?
PM MAIL WWW ICQ Skype GTalk   Вверх
Tanyaata
Дата 4.4.2009, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 28.2.2009

Репутация: нет
Всего: нет



защитить, чтобы пользователи не испортили данные в таблице, чтобы совместно могли использовать базу данных?

если же закрытые данные хранить в актуальной таблице, то как мне выбирать данные актуальные только для этого года?
PM MAIL   Вверх
bopoha
Дата 4.4.2009, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Цитата(Tanyaata @  4.4.2009,  20:21 Найти цитируемый пост)
защитить, чтобы пользователи не испортили данные в таблице, чтобы совместно могли использовать базу данных?

Ни разу не встречал пользователей, желающих испортить свои данные. Просто скройте от них окно базы данных и предоставьте удобное меню и формочку. И будет им счастье.


Цитата(Tanyaata @  4.4.2009,  20:21 Найти цитируемый пост)
если же закрытые данные хранить в актуальной таблице, то как мне выбирать данные актуальные только для этого года? 

Почему информация о том, что школа закрыта не является актуальной? Она же закрыта!
Если у вас будет дата закрытия или какой-либо другой признак, то всегда можно отфильтровать данные. Откуда у вас взялся год? В актуальной таблице самая последняя информация о школе.
PM MAIL WWW ICQ Skype GTalk   Вверх
Tanyaata
Дата 5.4.2009, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 28.2.2009

Репутация: нет
Всего: нет



Цитата

Почему информация о том, что школа закрыта не является актуальной? Она же закрыта!
Если у вас будет дата закрытия или какой-либо другой признак, то всегда можно отфильтровать данные. Откуда у вас взялся год? В актуальной таблице самая последняя информация о школе.


Мне же надо подсчитывать сколько школ на этот год и сколько в них человек
PM MAIL   Вверх
bopoha
Дата 6.4.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Цитата(Tanyaata @  5.4.2009,  10:42 Найти цитируемый пост)
Мне же надо подсчитывать сколько школ на этот год и сколько в них человек 

Фильтруйте данные по дате закрытия или по любому другому признаку.
PM MAIL WWW ICQ Skype GTalk   Вверх
Tanyaata
Дата 9.4.2009, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 28.2.2009

Репутация: нет
Всего: нет



А может еще подскажите. У меня есть форма_Показать данные по главной таблице данных о школе. Я на нее добавила кнопку "Изменить". при нажатии, открывается форма_Внести_изменения(в свойствах поля - данные-пусто, то есть не зависят от элемента), в нее заносятся данные которые можно менять. в этой форме также есть кнопки - сохранить изменения и отменить изменения. Можно ли мне как-то сразу занести данные измененные в саму таблицу, а не через форму_Показать(в которой поля зависят от значений в таблицах)? Я сначала присваиваю полям формы_Показать данные из полей формы_Внести_изменения. а там уже автоматически записываются данные в таблицу. а можно сразу из свободных полей, записать в таблицу???
PM MAIL   Вверх
bopoha
Дата 9.4.2009, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Цитата(Tanyaata @  9.4.2009,  19:06 Найти цитируемый пост)
а можно сразу из свободных полей, записать в таблицу??? 

Только програмно!
PM MAIL WWW ICQ Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.1331 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.