V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yzqtdu
V2EX  ›  问与答

Mysql 能实现字段间的相互“绑定”吗?

  •  
  •   yzqtdu · 2020-03-26 11:54:23 +08:00 · 1191 次点击
    这是一个创建于 1707 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好,新人一枚,有个问题想请教下。在我实现某个功能时发现数据库有两个字段(比如 account_name, account_type )相互关联,业务逻辑是这样的:手机验证码登录,用户名自动为手机号,type 是 1 ;注册登录,用户名是输入名,type 是 2 。现在修改手机号用户名的时候要一起修改 type,但是有的地方可能会漏掉,搞乱数据库。我的问题如下:一:能否在 mysql 层面设置实现这两个字段(同表和跨表)的“绑定”,或者用 orm 控制必须两个字段一起修改;二:这种业务的数据库有更好的设计方式吗?

    5 条回复    2020-03-26 14:33:48 +08:00
    loading
        1
    loading  
       2020-03-26 12:28:15 +08:00 via Android
    触发器
    事务
    loading
        2
    loading  
       2020-03-26 12:29:26 +08:00 via Android
    代码里面把修改手机号的做成一个接口,所有地方都调用这个接口,
    yzqtdu
        3
    yzqtdu  
    OP
       2020-03-26 14:26:42 +08:00
    @loading 感谢回复
    majiaxin110
        4
    majiaxin110  
       2020-03-26 14:29:40 +08:00
    一般建议还是在事务中做,触发器或者内建方法一般难以维护或拖慢数据库性能
    fancy111
        5
    fancy111  
       2020-03-26 14:33:48 +08:00
    同表怎么可能漏,更新肯定锁行的。 跨表用事务吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2912 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:07 · PVG 23:07 · LAX 07:07 · JFK 10:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.