Идентификаторы типа Integer или String для сущностей в базе данных / приложении? - PullRequest
0 голосов
/ 25 февраля 2011

Я создаю приложение на Java.Моя база данных ( Cassandra ) воспринимает только byte[] как данные.Таким образом, я могу свободно выбирать из нескольких типов данных для различных идентификаторов объектов, таких как идентификаторы пользователя или идентификаторы содержимого.

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

Похоже ли это на хорошее решение?Или предпочтительны строковые идентификаторы?

Любая обратная связь приветствуется ..

Ответы [ 3 ]

4 голосов
/ 25 февраля 2011

Определенно integer идентификаторы. Я видел случаи, когда некоторые базы данных выполняют сканирование полной таблицы со строковыми идентификаторами. Также могут быть ограничения на длину поля id (например, использование закодированного URL для id - плохая идея). Кроме того, генерация идентификаторов лучше оставить в базе данных, а integers кажется естественным выбором.

1 голос
/ 25 февраля 2011

На мой взгляд, все зависит от того, сколько сущностей вам нужно будет хранить в БД. Тип Integer имеет ограниченный набор значений, и если вы знаете, что вы не превысите этот предел, используйте Integer, в противном случае рассмотрите возможность использования типа Long или String.

1 голос
/ 25 февраля 2011

Целочисленные идентификаторы в целом, но ...

Почему у пользователя 4 строки в одной таблице?

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