значение идентификатора контакта в Android - PullRequest
0 голосов
/ 29 января 2012

Я новичок в разработке Android.Я занимаюсь разработкой приложения для телефонной книги.Я пытаюсь заполнить телефонную книгу контактами.Каждый контакт имеет имя, номер и адрес электронной почты.Так как каждый из трех находится в отдельной базе данных, я читаю контакт, телефон и электронную почту в этом порядке.Основываясь на идентификаторе контакта, который я извлек из первого чтения, я запрашиваю две другие таблицы.Однако контактные идентификаторы, полученные из базы данных контактов, не совпадают с теми, которые указаны в телефоне и электронной почте.Я предполагаю, что Contacts._ID должен быть ключом для всех трех таблиц.Пожалуйста, дайте мне знать, если я здесь что-то не так делаю.

Ответы [ 2 ]

0 голосов
/ 29 января 2012

Когда вы говорите, что вы разделили БД, вы имеете в виду разные таблицы в одной базе данных, верно? В любом случае вам нужно использовать так называемый «внешний ключ». Я уверен, что если вы Google это найдете, вы найдете много информации

Предполагая, что вы используете реляционную базу данных, давайте предположим, что у вас есть таблица T1 со столбцом, который является «первичным ключом» (пожалуйста, тоже в Google), скажем, T1_PK. Предположим, у вас есть вторая таблица T2, которая ссылается на первую, как в вашем случае таблицу с адресами электронной почты для данного контакта. Во второй таблице необходим столбец типа T1_FK, который «указывает» на необработанный текст в T1, где хранится связанный контакт: в этом столбце будут храниться значения, которые в T1 находятся в столбце T1_PK.

Вы можете использовать SQL и ключевое слово JOIN для команды SELECT, чтобы создать представление (вы также можете использовать его в «реляционной базе данных»), которое содержит всю информацию во всех таблицах.

0 голосов
/ 29 января 2012

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

...