一个人有一个名字和多个别名。人物可以通过名字和别名进行索引。所以我设计了两个表来存储这种关系: 和 。像这样:
<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”长度的限制。
有更好的方法吗?
最佳答案
唯一约束应该在(user_id,name)上。这可以防止一个人 (user_id) 多次使用相同的别名。
关于python - mysql为一个人存储多个别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38625706/