我想写一个网站,用户将使用他们的电子邮件地址和密码登录,但可以有多个用户名。
上下文是一个社交游戏网站。这可能会导致用户希望拥有多个用户名。例如,一个用于在团队中玩游戏的用户名(前缀或类似的)和一个用于单独玩游戏的用户名。
我一直在努力寻找在我的数据库中表示它的最佳方式,到目前为止我想出了:
在此设计中,每个用户的用户名中只有一行将 active 设置为 true。这对我来说有点味道。如果给定用户的行没有将 active 设置为 true 怎么办?
我想对于这个,我们或多或少地保证每个用户都有一个用户名,并且拥有的用户名表提供了用户拥有的用户名列表。感觉好多了,但是有重复的信息(活动时在两个表中指定了用户名)。
任何人都对我如何构建它有更好的想法?这有共同的模式吗?
从本质上讲,我所设想的是一种为我的网站提供功能的方式,即每人拥有一个用户,使用电子邮件和密码登录,并将一个或多个用户名链接到该用户。
我猜用户和用户名之间存在 1:N 关系,其中 N > 0。我只是不确定如何有效地对此进行建模。或者实际上,如果这表明我想要的功能需要重新思考。
没有正式的团队概念,这只是一个例子,一个人可能想要多个用户名。
当然,我们可以简化这一点并强制需要单独用户名的人多次注册。这将大大简化数据库,但允许多个用户名一次登录对用户来说更方便。
我正在考虑将其限制为最多 2 或 3 个,但我想这不会改变设计,只是前端限制。