У одного человека есть одно имя и множественный псевдоним. Человек может индексировать по имени и псевдониму. Поэтому я создаю два стола для хранения этих отношений: и. Пример:mysql store muptiple alias для одного человека
<user table>
|user_id | int
|name | varchar
<alias table>
|user_id | int
|alias | varchar
Два стола, соединенных user_id. Таким образом, один пользователь может устанавливать множественные псевдонимы и индексировать по псевдониму. Но теперь нам нужно добавить уникальное ограничение. Если имя пользователя и каждый псевдоним такие же считается повторение Так я думаю использовать один настольный магазин, как это:
<user table>
|user_id | int
|name | varchar
|sorted_alias_str | varchar
ps: sorted_alias_str store each alias which join by comma. like: 'name1,name2'
с ограничением уникальности (имя, sorted_alias_str)
но число пользователя Псевдоним - это ограничение по длине sorted_alias_str.
есть ли лучший способ сделать это?
Не уверен, что я полностью понять ваш вопрос. Хотите ли вы сохранить различное количество псевдонимов для каждого пользователя, а также сохранить их уникальными? Может быть, 'trigger' ... – sgeddes
Я имею в виду, что хочу хранить различное количество псевдонимов для каждого пользователя. И уникальное ограничение: (имя, каждый из псевдонимов) , если имя нового пользователя дублируется, но псевдоним отличается (число псевдонима или текстовое), это приемлемо. Если имя нового пользователя и псевдоним все дубликаты, это неприемлемо. – xwl