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

避免重复内容的最佳实践?

  •  
  •   supersheep · 2013-10-07 23:27:23 +08:00 · 2749 次点击
    这是一个创建于 4069 天前的主题,其中的信息可能已经有所发展或是发生改变。
    通常我们为了避免重复内容的产生,会在业务里限制比如一个系统中不能有同名的用户,不能有同ISBN的书目等等。

    那么有两个问题想要请教一下大家:

    1. 如果插入的时候发现数据已经存在,这个时候作什么返回最为合理?

    1) 返回特定的错误码,并告知客户端数据已存在
    2) 如同正常插入一样,只是若已经有的话返回已有数据

    2. 一般这个约束是在哪里做的

    我理解的,通常会在业务里处理,但是为了保证系统的健壮,会在数据库层面也加一下约束。
    那么,这类数据库上一次性的,可有可无的约束,通常会在部署的哪一个步骤去做?有没有什么workflow可以有效的防止忘记或者误操作这一类事情?

    后端不大熟,忘大家指教^^
    3 条回复    1970-01-01 08:00:00 +08:00
    9hills
        1
    9hills  
       2013-10-07 23:34:39 +08:00
    插入重复数据返回错误还是正常要看你的业务逻辑

    你的业务逻辑认为重复数据是偶然的,不应该出现的,则返回错误
    你的业务逻辑认为重复数据是常见的,必然的,则返回正常
    binux
        2
    binux  
       2013-10-07 23:35:48 +08:00
    最佳实践都是——视情况而定
    yangqi
        3
    yangqi  
       2013-10-08 00:18:49 +08:00
    后端么就是数据库一定要设好Unique key,至于遇到重复是返回错误还是更新这个根据不同业务是不一样的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1189 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:10 · PVG 07:10 · LAX 15:10 · JFK 18:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.