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

怎样实现相同题目不能同时入库?....后端处理语言可以忽略,在这里不讨论什么语言是最好的...,因为我用的事最 low 的语言,在很多人看来。

  •  
  •   sheldoner · 2015-04-20 10:34:03 +08:00 · 2720 次点击
    这是一个创建于 3510 天前的主题,其中的信息可能已经有所发展或是发生改变。
    那么问题:相同题目不能入库。要怎么设计数据库?或者说业务逻辑怎么处理?

    以一个外行的话表述实现功能,就是:在插入题目前对整个数据库的题目进行查询,相同的就不能插入。

    如果你想这么说的话,那就不要回答了,你能成为很好的产品。希望各位能给出切实可行的方法...谢谢
    各位v友。
    14 条回复    2015-04-20 14:31:03 +08:00
    NewYear
        1
    NewYear  
       2015-04-20 11:36:10 +08:00
    字段可以限制禁止相同内容的2条出现,access都有,其他的数据库应该自带吧,有相同的插入的时候会失败。

    至于您说的“切实可行的方法”……我反而不知道您要什么呢。

    要不然您说说您用的是什么语言和数据库,我常常用vb6+access还有asp,别怕被说,我们是来解决问题的。
    qping
        2
    qping  
       2015-04-20 12:17:32 +08:00
    Unique key
    sheldoner
        3
    sheldoner  
    OP
       2015-04-20 13:51:32 +08:00
    @NewYear 数据库是mysql,后端是java....你说字段限制相同的东西,值设置主键的?还是楼下说的unique key...如果unique key 真像网上说的,插入时自动查询数据库的话,那我就不要头疼了,谢谢...
    xiaogui
        4
    xiaogui  
       2015-04-20 13:52:29 +08:00
    其实主要问题是你如何定义“相同题目”。
    jokester
        5
    jokester  
       2015-04-20 13:53:38 +08:00
    "数据库的题目"这用法很新颖。。能解释一下吗
    NewYear
        6
    NewYear  
       2015-04-20 14:01:05 +08:00
    @sheldoner mysql不会玩,不过随便搜了一下 看这里

    http://www.jb51.net/article/40635.htm
    sheldoner
        7
    sheldoner  
    OP
       2015-04-20 14:06:20 +08:00
    @qping unique key
    @NewYear
    我试了一下,他好像是有大小限制的,我的是767bytes,我的题目如果输入的题目的过长的话,那么它就失效了...谢了,还有其他的方法么?不要说算题目的MD5...
    shiny
        8
    shiny  
       2015-04-20 14:08:49 +08:00
    没交代的一点是完全匹配还是要做相似度检测。
    sheldoner
        9
    sheldoner  
    OP
       2015-04-20 14:10:38 +08:00
    @xiaogui 其实我也想了一下...相同题目的定义让机器去判断的话,就比较麻烦了,要想的比较广泛了。鉴于作业的要求...就定义题目完全一样
    lichao
        10
    lichao  
       2015-04-20 14:10:59 +08:00
    @sheldoner 如果有大小限制,MD5 也是很不错的方法啊,有什么不能说的
    sheldoner
        11
    sheldoner  
    OP
       2015-04-20 14:15:45 +08:00
    @jokester 就是数据库的一个字段(题目内容exercises这个字段)...插入题目内容。
    sheldoner
        12
    sheldoner  
    OP
       2015-04-20 14:16:41 +08:00
    @lichao 我时间不够了...在改的话...要迟交了
    sheldoner
        13
    sheldoner  
    OP
       2015-04-20 14:20:29 +08:00
    @shiny 这个...都行。你看哪个简单点?能告诉两个方法具体的做法么?
    cevincheung
        14
    cevincheung  
       2015-04-20 14:31:03 +08:00
    看需求了吧。

    如果说相同题目要提示“已存在相同的不能插入”那就必须一定要先查询吧?
    如果说无视,直接提示“提交(插入)失败”,那unique key不管他直接插入就好了吧。反正有异常能抓到。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1076 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:03 · PVG 04:03 · LAX 12:03 · JFK 15:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.