Должна ли модель содержать идентификатор? - PullRequest
0 голосов
/ 05 января 2019

Я пишу Java-приложение, управляемое базой данных, содержащее модели. Я не знаю, где разместить идентификатор. Должно ли это быть в модели или другом объекте.

public class model {
    int id;
    int data;
}

Кроме того, как мне создать начальное значение идентификатора?

1 Ответ

0 голосов
/ 05 января 2019

Я пишу Java-приложение на основе базы данных, содержащее модели.

Если классы модели содержат информацию базы данных, эти классы являются наилучшим местом для хранения идентификатора таблицы / представления / коллекции, которую они представляют.
Обычно вы представляете идентификатор непосредственно как int/long для не составных ключей, в то время как вы обычно хотите представлять составные ключи с определенным классом, таким как:

public class Model {
    ModelPk modelPk;
    int data;
    //getters
}

public class ModelPK {
    long idFoo;
    long idBar;
    //getters
}

Кроме того, как мне создать начальное значение идентификатора?

Для реляционных БД последовательность автоинкремента обычно такая же.
С NoSQL DB, атомарная последовательность возможна, хотя это не стандартный способ (не обязательно масштабируемый и адаптированный к разнесенной модели данных). Другие способы позволяют генерировать уникальные идентификаторы объектов с некоторыми ограничениями, которые могут быть приемлемы в зависимости от конкретного случая (например, это не обязательно серия чисел, а сочетание временных меток и других вещей).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...