Форум: "Базы";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];
ВнизСжатие базы Access и связанные таблицы Найти похожие ветки
← →
DVM © (2006-06-13 15:57) [0]Для примера, путь имеем следующие таблицы:
Первая:IDUser | UserNаme|
----------------------
5 | Вася |
----------------------
8 | Петя |
Вторая:IDUser | Что-то еще |
----------------------
5 | что-то 1 |
----------------------
5 | что-то 2 |
----------------------
8 | что-то 3 |
----------------------
и.т.д.
IDUser в первой таблице - автоинкремент
Сжимаю базу. Естесственно, поле UserID у Васи станет 1, а у Пети 2. После этого связь будет нарушена.
Что лучше сделать для сохранения целостности данных?
← →
DVM © (2006-06-13 15:58) [1]Общение с базой через ADO
← →
Sergey13 © (2006-06-13 16:07) [2]>Сжимаю базу. Естесственно, поле UserID у Васи станет 1, а у Пети 2. После этого связь будет нарушена.
Я не знаток Аксеса, но, ИМХО, это неестественно. Даже противоестественно.
← →
DVM © (2006-06-13 16:09) [3]
> Я не знаток Аксеса, но, ИМХО, это неестественно. Даже противоестественно.
Что именно? Сжатие? Или изменение индексов?
Так и будет. Причем если в самой Access пометить поля как связанные, все сохраняется нормально. Индексы исправляются во всех связанных таблицах.
← →
DVM © (2006-06-13 16:10) [4]Меня бы устроило сжатие без изменения индексов вообще.
Уточню: UserID в терминах Access это ключевое поле с автоинкрементом.
← →
Sergey13 © (2006-06-13 16:40) [5]2[3] DVM © (13.06.06 16:09)
> Причем если в самой Access пометить поля как связанные, все сохраняется нормально.
Ну дык пометь. Что мешает то?
← →
sniknik © (2006-06-13 17:45) [6]> Естесственно, поле UserID у Васи станет 1, а у Пети 2.
не естественно. никакое сжатие не нарушает значений уже внесенных данных, хоть поле с автоинкрементом хоть без, с пометкои и без нее.
> Меня бы устроило сжатие без изменения индексов вообще.
индексы меняются т.к. переформируются страници с данными, все "поджимается", но тебя это волновать не должно, где бы индексы не лежали данные будут те же.
← →
DVM © (2006-06-13 17:56) [7]
> не естественно. никакое сжатие не нарушает значений уже
> внесенных данных, хоть поле с автоинкрементом хоть без,
> с пометкои и без нее.
Даже не знаю, что сказать. Я потому и задал вопрос, что удивляет поведение Access. Может это глюки Acccess на конкретной машине, но происходит так как я описал. Странно. Попробую потом в другом месте.
← →
sniknik © (2006-06-13 18:00) [8]> Может это глюки Acccess на конкретной машине, но происходит так как я описал.
скорее это глюки того(/чего) ты не описал, а именно, что ты называеш "сжатием бызы" и как ты это выполняеш.
← →
DVM © (2006-06-13 18:03) [9]
> а именно, что ты называеш "сжатием бызы" и как ты это выполняеш.
Главное меню Access: Сервис > Служебные программы > Сжать и восстановить базу данных.
← →
sniknik © (2006-06-13 19:57) [10]> Главное меню Access: Сервис > ...
не должно, пробуй еще.
единственное возможно у тебя старый access/база, до 2000-го (95/97) были признано глючными, "глюкала" сама база, т.е. если в меню в служебных -> преобразование, у тебя закрыто access 97(т.е. это текуший формат получается) и открыто access 2000/2002 то преобразуй базу в более новую и пробуй потом.
ну и структуру приводи если не получится. (чтобы повторить и проверить)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c