Хранить идентификаторы ресурсов в базе данных? - PullRequest
0 голосов
/ 20 июня 2020

Представьте себе таблицу базы данных с различными продуктами питания, например, молоком. Я хочу, чтобы названия продуктов были переведены. Я хочу хранить переводы отдельно от таблицы и вместо этого использовать строковые ресурсы. Моя таблица может выглядеть так:

ID product_name stringRes
1  milk         ???

В моем приложении у меня есть @string/milk для переводов. Как мне сохранить ссылку на @string/milk в базе данных? R.id.milk вероятно, не всегда одно и то же значение ID на разных компиляциях, поэтому ставим? R.id.milk` в столе - не лучшая идея?

Ответы [ 2 ]

0 голосов
/ 20 июня 2020

Вы правы, идентификаторы ресурсов не всегда совпадают. Таким образом, ссылаться на столбец db по идентификатору ресурса - не лучшая идея. Затем, для перевода, в идеале вам никогда не следует заранее упаковывать перевод, если у вас есть Dynami c products / items. Поэтому для обратной ссылки на базу данных в идеале у вас должна быть другая таблица, в которой вы можете сопоставить перевод следующим образом:

id | product_fk | translated_name | translated_source_iso
0 голосов
/ 20 июня 2020

Храните свой собственный идентификатор в базе данных и используйте код в своем приложении для сопоставления этого идентификатора с его текстовым представлением. Сегодня это текстовое представление может быть получено из ресурса. В следующем месяце это может быть перевод, который вы загрузите. Через месяц после этого он может быть получен с этикетки, предоставленной пользователем.

...