![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
Tanyaata |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 28.2.2009 Репутация: нет Всего: нет |
У меня имеется база данных школ. каждой школе присвоен свой уникальный номер из 6 цифр.
В таблице, где хранятся данные об этой школе, уникальный номер является ключевым полем. Если данные по школе изменились, мне надо их записывать в рабочую таблицу, но и старые данные не терять. Причем нужна дата изменения.но он не даст записать школу с одинаковыми уникальными номерами. Как мне сохранять данные и потом быстро выбирать необходимые данные(в зависимости от даты) о школе и подсчитывать, допустим, количество школ в 2008 и количество школ в 2009 году(школа может закрыться или стать филиалом другой школы) Это сообщение отредактировал(а) Tanyaata - 28.3.2009, 09:50 |
|||
|
||||
bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Не стоит никогда опираться только на пользовательскую нумерацию. Я всегда опираюсь на уникальный счетчик.
В вашем случае можно завести отдельную таблицу с историей или бить таблицы по годам, если каждый год вы вносите информацию заново. Я бы остановился бы на таблице с историей. Или еще можно разбить основную таблицу на две части основную и дополнительную, в которой будет записываться информация о школе и дата этой информации, со связью один-ко-многим. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Это - ошибка, которая и породила проблему. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Tanyaata |
|
||||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 28.2.2009 Репутация: нет Всего: нет |
в течение года я должна использовать данные только из основной таблицы, которая заполняется каждый год в сентябре. но изменения могут происходить в течение всего года Добавлено через 3 минуты и 46 секунд
В принципе я так и сделала, но как соединить основную таблицу и дополнительную? Добавлено через 5 минут и 42 секунды понимаете, если я воспользуюсь счетчиком, то данные о школе могут добавить те же и получится, что в таблице будет две записи про одну школу с одинаковыми данными Добавлено через 7 минут и 11 секунд и что за таблица с историей? |
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Нормальненько! а данные вы льёте в таблицу, принципиально их не проверяя? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Основная таблица и дополнительная, назовем их теперь, таблицы школы и данные школ. Связаны по полю счетчики из таблицы школы, в таблице данные школ внешний ключ. Также в таблице данные школ должна быть дата внесения данных, чтобы можно было получить последнюю информацию.
С таблицей историей. В этом случае таблиц тоже две, первая - актуальные данные, вторая - история. Связь по ключевому полю из первой таблицы (как и в первом варианте). В этом случае получение актуальных данных проще. Мне больше нравится второй вариант. По поводу ключевых полей. Счетчик гораздо лучше, чем пользовательский номер. В данном случае счетчик никто не видит и поменять не может, а вот пользовательский код пользователь может захотеть поменять и будет прав. Если пользовательский код использовать во внешних ключах, то получается отличный гемморой с заменой значения. |
|||
|
||||
Tanyaata |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 28.2.2009 Репутация: нет Всего: нет |
А как мне бороться с избыточностью данных? ведь данные могут добавить одинаковые. проверку делать при добавлении?
а при таблице истории: как мне потом найти закрытые школы.в таблице истории они будут, а в актуальных данных уже их нет. как их то связать? Добавлено через 7 минут и 22 секунды И скажите еще пожалуйста, как мне защитить базу данных. можно ли просто выложить на сервер, чтобы все пользовались-не будет конфликтов? и как мне любому открывшему сделать доступ только для чтения, без изменения данных в таблицах(только просмотр отчетов, форм и запросов), а 2 людям дать администраторские права. можно ли это сделать без подключения файла рабочей группы? Заранее спасибо за ответы. И спасибо за ответы на предыдущие вопросы |
|||
|
||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
несомненно
это - один из недостатков многотабличного хранения начните с разделения БД -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
bopoha |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Я думаю лучше дать возможность пользователю самому решать, что он будет делать: - Исправлять ошибку - редактирование без сохранения истории. - Вносить новые сведенья - редактирование с предварительным сохранением предыдущих данных в истроию
В истории хранятся уже не актуальные данные. На то она и история. Связывать по ключевому полю из таблицы с актуальными данными. Закрытые школы могут быть в актуальных данных, т.к. это последнее состояние объекта. От чего и от кого защищать? |
||||
|
|||||
Tanyaata |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 28.2.2009 Репутация: нет Всего: нет |
защитить, чтобы пользователи не испортили данные в таблице, чтобы совместно могли использовать базу данных?
если же закрытые данные хранить в актуальной таблице, то как мне выбирать данные актуальные только для этого года? |
|||
|
||||
bopoha |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Ни разу не встречал пользователей, желающих испортить свои данные. Просто скройте от них окно базы данных и предоставьте удобное меню и формочку. И будет им счастье.
Почему информация о том, что школа закрыта не является актуальной? Она же закрыта! Если у вас будет дата закрытия или какой-либо другой признак, то всегда можно отфильтровать данные. Откуда у вас взялся год? В актуальной таблице самая последняя информация о школе. |
||||
|
|||||
Tanyaata |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 28.2.2009 Репутация: нет Всего: нет |
Мне же надо подсчитывать сколько школ на этот год и сколько в них человек |
|||
|
||||
bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
||||
|
||||
Tanyaata |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 28.2.2009 Репутация: нет Всего: нет |
А может еще подскажите. У меня есть форма_Показать данные по главной таблице данных о школе. Я на нее добавила кнопку "Изменить". при нажатии, открывается форма_Внести_изменения(в свойствах поля - данные-пусто, то есть не зависят от элемента), в нее заносятся данные которые можно менять. в этой форме также есть кнопки - сохранить изменения и отменить изменения. Можно ли мне как-то сразу занести данные измененные в саму таблицу, а не через форму_Показать(в которой поля зависят от значений в таблицах)? Я сначала присваиваю полям формы_Показать данные из полей формы_Внести_изменения. а там уже автоматически записываются данные в таблицу. а можно сразу из свободных полей, записать в таблицу???
|
|||
|
||||
bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Только програмно! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "MS Access" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MS Access | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |