Я не могу сказать, в какой БД находится строка только из глобального идентификатора - PullRequest
0 голосов
/ 21 июля 2011

Если у меня есть таблица User (с глобальным id в качестве первичного ключа), которая разделяется на 10 баз данных (DB1 - DB10) на основе username, и другая таблица пытается обратитьсячто касается таблицы User с использованием глобальной строки User таблицы id, я не могу узнать, в какой БД (1-10) находится этот пользователь.

Какое решениеэто проблема?

1 Ответ

1 голос
/ 21 июля 2011

Либо:

  1. Измените свою схему шардирования так, чтобы она была основана на ключе, который вы используете для поиска этих данных.Если это по идентификатору, всегда делайте это по идентификатору и делайте это по ID (DB = ID% 10)

  2. Сделайте первичный ключ таблицы User username.Примените его уникальность и используйте username в качестве внешнего ключа в других таблицах, а не синтетический идентификатор.

  3. Создайте таблицу поиска, на которую можно ссылаться, которая сопоставляет id s с шардами.

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