Два строковых столбца в качестве первичного ключа

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

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

Я прочитал Строки как первичные ключи в базе данных SQL, и я не уверен, что это хорошая идея иметь две строки в качестве первичных ключей таблицы.

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

Все советы приветствуются


person JoseLSegura    schedule 28.09.2013    source источник


Ответы (1)


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

person Ebbe M. Pedersen    schedule 28.09.2013
comment
Да, я знаю, но другие ответы указывают на проблемы оптимизации с использованием первичных ключей, которые не всегда растут, как целое число с автоинкрементом... Я буду использовать две строки, надеюсь, что мне не нужно будет их менять в будущем ! - person JoseLSegura; 29.09.2013