Двойные поля уникальные индексы - PullRequest
1 голос
/ 15 марта 2012

В настоящее время я использую mongodb, но я также привык к MySQL.

Я пытаюсь задуматься, можем ли мы иметь индекс двойного поля?

Например, представьте эту таблицу:

Firstname   | LastName
============+=================    
Bob         | Bob
Bob         | B
John        | Bob

Индекс, где мы можем иметь базу данных, обеспечивающую уникальность с обоими значениями First Name и Last Name как единое целое (без необходимости использовать служебную нагрузку в качестве третьего поля как в сочетании, так и в виде хэша или чего-то еще

поэтому, если бы мы ввели { 'firstname: 'bob', 'lastname': 'bob'}, он бы не вставлялся.

Может ли mongodb сделать это?

Ответы [ 3 ]

2 голосов
/ 15 марта 2012

Вы можете сделать это в MongoDB через составной индекс, например:

db.col.ensureIndex({Firstname:1, LastName:1}, {unique:true})
0 голосов
/ 15 марта 2012

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

http://www.mongodb.org/display/DOCS/Indexes#Indexes-unique%3Atrue

Здесь приведен пример того, что вы ищете:

db.things.ensureIndex({имя: 1, фамилия: 1}, {уникальное имя: истина});

Дайте мне знать, если это поможет вам.

0 голосов
/ 15 марта 2012

Вы можете добавить несколько индексов столбцов в MySQL. Например:

alter table users add unique index(firstname, lastname);

UPDATE:

Это называется составным уникальным ограничением

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