数据库 这种多对多的设计是否常见

night_7th · 2016年08月02日 · 最后由 xworm 回复于 2016年08月02日 · 1715 次阅读
# members表
id BIGINT(20)
user_id BIGINT(20)
app_id BIGINT(20)

我们的登陆使用了第三方的登陆系统,会生成一串 hash 存储在 users 表中的一个字段中。

于是有人建议改成这样的设计:

# members表
id BIGINT(20)
user_hash VARCHAR(255)
app_id BIGINT(20)

想请问一下大家第二种方案 rails 的支持好么?在多对多的关系设计中是否常见?

多对多不需要 id 主键,user_hash 不如 id 好,但表现可能没那么差

ActiveRecord 不支持非 id 主键的问题不知道有没有解决了,很久没有追了

如果你确实需要 user_id,user_hash 可以都存在这个表里 has_many through, 关联表本身也是一个模型

需要 登录 后方可回复, 如果你还没有账号请 注册新账号