Я новичок в разработке Android. Я разрабатываю приложение телефонной книги. Что я делаю, так это пытаюсь заполнить телефонную книгу контактами. У каждого контакта есть имя, номер и идентификатор электронной почты. Поскольку каждый из трех находится в отдельной базе данных, я читаю контакт, телефон и базу данных электронной почты в этом порядке. Основываясь на контактном идентификаторе, который я получаю при первом чтении, я запрашиваю две другие таблицы. Тем не менее, идентификаторы контактов, извлеченные из базы данных контактов, не совпадают с идентификаторами в телефоне и электронной почте. Я предполагаю, что Contacts._ID должен быть ключом для всех трех таблиц. Пожалуйста, дайте мне знать, если я делаю что-то неправильно здесь.
значение идентификатора контакта в android
Ответы (2)
Когда вы говорите, что у вас есть отдельные БД, вы имеете в виду разные таблицы в одной базе данных, верно? В любом случае вам нужно использовать так называемый «внешний ключ». Я уверен, что если вы погуглите, вы найдете много информации
Предполагая, что вы используете реляционную базу данных, предположим, что у вас есть таблица T1 со столбцом, который является «первичным ключом» (пожалуйста, тоже погуглите), скажем, T1_PK. Предположим, у вас есть вторая таблица T2, которая ссылается на первую, как в вашем случае, на таблицу с адресами электронной почты для данного контакта. Во второй таблице вам нужен такой столбец, как T1_FK, который «указывает» на необработанные данные в T1, где хранится связанный контакт: в этом столбце будут храниться значения, которые в T1 находятся в столбце T1_PK.
Вы можете использовать SQL и ключевое слово JOIN для команды SELECT, чтобы создать представление (вы также можете использовать Google с «реляционной базой данных»), которое содержит всю информацию во всех таблицах.
В таблицах должен быть какой-то уникальный идентификатор для идентификации связанных записей (может не быть contact_id), это может быть просто идентификатор из таблицы контактов.