2011-12-16 2 views
1

У меня есть две базы данных Access: Main хранит большинство моих данных и Memos хранит данные типа данных Memo. Я храню заметки в отдельном db, потому что все, что я читал о полях Memo, сказал, что они подвержены коррупции и что единственным безопасным способом защиты вашей базы данных является наличие заметок в отдельном связанном db.Доступ: наложение ссылочной целостности на связанную таблицу

Memos имеет таблицу Info с полями: ID (тип Autonumber первичный ключ) Info (тип памятка)

Main имеет таблицу Content с полями: ID (тип Autonumber первичный ключ) infoID (типа Номер) entryDate (тип Дата/Время)

Я хочу обеспечить ссылочную целостность на Content, чтобы он мог принимать только значения, которые являются действительными идентификаторами из таблицы Info. Но я не могу, потому что Memos - это связанная база данных. Я могу установить элементы управления в другой точке процесса ввода данных, чтобы гарантировать, что только значения от Info могут быть вставлены в Content, но я бы предпочел не кодировать валидацию, если есть способ обеспечить ее использование с помощью ограничений базы данных.

Есть ли другой способ обеспечить целостность между связанными таблицами, о которых я не знаю, или другой способ справиться с проблемой хранения Memo, чтобы я мог хранить Memos в одной и той же БД?

+1

Я думаю, что это старая проблема, не имеющая отношения к более поздним версиям (http://bytes.com/topic/access/answers/851398-memo-fields-multiuser-database). Какую версию вы используете? – Fionnuala

+0

@Remou, я использую Access 2010. – sigil

+1

Если вы не делаете много обновлений полей memo в неустойчивой сети, это не должно быть проблемой. Или используйте метод три в ссылке в моем первом комментарии (несвязанные элементы управления). Если вы действительно должны хранить отдельную таблицу, рассмотрите макросы данных, доступные с 2010 года, для проверки: http://blogs.office.com/b/microsoft-access/archive/2009/08/13/access-2010-data- macros-similar-to-triggers.aspx – Fionnuala

ответ

0

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

IMHO - лучшее решение для настройки базы данных базы данных MS SQL и настройки ссылочной целостности в этой БД. В общем, он более надежный, чем MS Access в вашей ситуации (flaky network). Вы можете уйти с версией SQL Server Express.

+0

Я действительно пытался это сделать в Access без SQL Server, потому что у меня не было административных прав администратора на сервере, и все, что я мог сделать, это поместить файл Access в общую сетевую папку. Но проект закончился, и если бы мне пришлось это сделать снова, я бы пошел по пути SQL Server. – sigil

Смежные вопросы