V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ghjh
V2EX  ›  程序员

你们数据库会直接存用户的年龄吗?

  •  1
     
  •   ghjh · 1 天前 · 9204 次点击

    吐槽贴

    接反馈,用户用了两年平台了,显示的年龄一直都是 32 岁,想问问怎么回事

    那么看代码就很清楚了。用户注册时候让填年龄,后端直接把年龄作为一个单独字段存起来了,然后用户自己也没地方改

    我辛勤的同事们啊

    97 条回复    2025-09-25 14:32:33 +08:00
    Meijer
        1
    Meijer  
       1 天前   ❤️ 2
    用生日啊
    mooyo
        2
    mooyo  
       1 天前
    乐,顶级设计
    hkiJava
        3
    hkiJava  
       1 天前   ❤️ 1
    程序和程序员有一个能跑就行了(逃
    Cloud9527
        4
    Cloud9527  
       1 天前   ❤️ 4
    冻龄了
    panxi
        5
    panxi  
       1 天前
    哈? 这不是段子吗? 怎么还真有人存年龄字段
    uqf0663
        6
    uqf0663  
       1 天前   ❤️ 13
    [手动狗头] 也不是不能用,一定有注册时间的字段吧?算一下当前年份跟注册时间的年份相差几年,把这个数字+年龄数字字段再更新回去,这就补救完了,然后再整个计划任务,每年 1 月 1 日 0 点整个数据库年龄字段+1 ,对屎山就开始堆了。
    malusama
        7
    malusama  
       1 天前   ❤️ 1
    用生日啊, 我的天。 至少填年龄的时候后端得转成出生的年份把。 你现在咋改
    callv
        8
    callv  
       1 天前
    天才哈哈
    JoeDH
        9
    JoeDH  
       1 天前
    说明你们这个字段并不重要啊
    lchynn
        10
    lchynn  
       1 天前   ❤️ 2
    SELECT
    EXTRACT(YEAR FROM SYSDATE) - EXTRACT(YEAR FROM 注册日期) + 年龄字段 AS 当前年龄
    FROM 表名;
    shen13176101
        11
    shen13176101  
       1 天前
    我没记错的话,qq 也是单独字段存起来的吧。之前每年手动改年龄
    poic
        12
    poic  
       1 天前
    这种只能写个作业定时每天跑一次刷一下
    rm0gang0rf
        13
    rm0gang0rf  
       1 天前
    这有啥?算回生日更新字段不就行了
    tabris17
        14
    tabris17  
       1 天前   ❤️ 48
    这是墓园系统吗?
    qwwuyu
        15
    qwwuyu  
       1 天前
    年龄+当前时间-注册时间
    xuanbg
        16
    xuanbg  
       1 天前
    年龄肯定要算的,不管你存的是什么,反正都有办法算的。譬如你直接存注册时填写的年龄,那按楼上 V 友的算法就可以得到“理论上正确”的年龄了。
    slert
        17
    slert  
       1 天前   ❤️ 1
    当时实现需求的时候没动脑子 你就说实没实现吧 至少管用 1 年没问题
    javalaw2010
        18
    javalaw2010  
       1 天前
    说来惭愧,这事我也干过。主要是因为产品经理他就这么设计的,修改年龄的控件不是个日期组件而是个数字 picker ,我发现问题了但我又懒得让他改,数据库就直接设计一个 age 字段完事了。
    janpun
        19
    janpun  
       1 天前
    @malusama 直接今年-注册年+注册时年龄就是现在的年龄,也能用,只要不收集出生日期,都不会特别准。
    cwcc
        20
    cwcc  
       1 天前
    椰树牌椰汁都不敢直接保存年份作为包装,更何况信息系统
    ovtfkw
        21
    ovtfkw  
       1 天前 via iPhone
    qq 的年龄不是也不会变化的?
    renmu
        22
    renmu  
       1 天前 via Android
    要看场景,如果医院场景那正确的年龄就是非常重要的,如果是社交场景,自定义的年龄可能更适合用户
    snailya
        23
    snailya  
       1 天前   ❤️ 3
    简单,UI 改成注册时年龄
    ghjh
        24
    ghjh  
    OP
       1 天前
    查完 blame 之后,这东西看起来是外包做的
    结题,散会!
    InDom
        25
    InDom  
       1 天前
    设计可以, 但需要提供用户“编辑年龄”的功能, 虽然还是屎一样, 但用户不会找到你头上了.
    inhzus
        26
    inhzus  
       1 天前
    开除外包以祭天
    jackOff
        27
    jackOff  
       1 天前
    赛博死亡笔记吗?填完就销户?
    Ketteiron
        28
    Ketteiron  
       1 天前
    笑麻了
    但这本质上不是外包的问题,是请了外包以及没做好验收的问题
    Kiriri
        29
    Kiriri  
       1 天前
    倒是可以根据注册时间算一下
    edsion1107
        30
    edsion1107  
       1 天前
    小米运动健康的?怎么跟我反馈的问题一模一样……
    keller
        31
    keller  
       23 小时 47 分钟前
    外包不还是按照需求做的?产品谁设计的
    Cloud9527
        32
    Cloud9527  
       23 小时 45 分钟前
    其实没毛病,我就想记录用户注册时的年龄
    hervey0424
        33
    hervey0424  
       23 小时 44 分钟前
    写个任务, 每年执行一次增加以下年龄
    knva
        34
    knva  
       23 小时 33 分钟前
    天才,我说的是数据库设计
    Cruzz
        35
    Cruzz  
       23 小时 30 分钟前
    有注册时间自己算一下呗,问题不大。
    rabbbit
        36
    rabbbit  
       23 小时 27 分钟前
    还行,没说后端让前端自己根据注册时间加一下。
    julyclyde
        37
    julyclyde  
       23 小时 6 分钟前
    我大学时的学生证上也是写的年龄
    一些其他的证件(我指的不是死亡证明)好像也是年龄
    nekoneko
        38
    nekoneko  
       23 小时 4 分钟前
    如果是我设计的话, 一般会把生日存为虚拟列.
    idealhs
        39
    idealhs  
       23 小时 3 分钟前
    同事纯脑瘫,我刚毕业也写不出这种唐氏逻辑
    realpg
        40
    realpg  
    PRO
       22 小时 54 分钟前
    以前 QQ 就得每年自己改...
    T1205
        41
    T1205  
       22 小时 51 分钟前
    看看有没有创建时间,然后根据当前的时间计算一把
    Rat3
        42
    Rat3  
       22 小时 3 分钟前
    年龄不参与业务的话,有啥问题吗,之前 qq 就这么设计的
    HHAO2019
        43
    HHAO2019  
       22 小时 3 分钟前
    不是产品的问题吗
    Hopetree
        44
    Hopetree  
       22 小时 0 分钟前   ❤️ 4
    只能说,产品是天才,开发也是,前端是,后端也是,测试也是,这一个简单的问题,暴露出一群天才
    v2er119
        45
    v2er119  
       21 小时 51 分钟前
    各位都是写代码的,都没想到:有没有可能原始需求就是要一个注册时的用户年龄,然后后面 UI 显示成 实时年龄了。
    jiangzm
        46
    jiangzm  
       21 小时 39 分钟前
    有生日信息就不要填年龄信息,不需要生日信息可以单独填年龄的话应该就是个参考信息,用户自己决定对外展示的年龄。
    wangtian2020
        47
    wangtian2020  
       21 小时 13 分钟前
    你不说我还真想不起来这种情况。屁大点事不至于上纲上线,改就完事了
    wangtian2020
        48
    wangtian2020  
       21 小时 12 分钟前
    社交软件万一用户要装自己永远 18 岁呢
    henshang
        49
    henshang  
       20 小时 45 分钟前   ❤️ 1
    @uqf0663 #6 直接全部推算出注册年月日,洗库,然后废弃之前年龄字段不就行了,你这什么回路
    unco020511
        50
    unco020511  
       20 小时 44 分钟前
    哈哈,永远 18 岁了
    henshang
        51
    henshang  
       20 小时 42 分钟前
    @hervey0424 #33
    @poic #12 你们真的是设计过数据库吗
    op351
        52
    op351  
       20 小时 38 分钟前
    实际上有些商业 HR 系统的人员表里是有 AGE (年龄)字段的
    我看了我司的 HR 系统的这张表,AGE 是自动更新的
    xiaobei206
        53
    xiaobei206  
       20 小时 9 分钟前
    设置年龄可以让用户自己随便修改不就完事了,以前 QQ 就这样
    duzhuo
        54
    duzhuo  
       20 小时 1 分钟前 via Android
    哈哈 上学没教吗
    Pipecraft
        55
    Pipecraft  
       19 小时 36 分钟前
    开发团队不 review 代码吗?
    就算 review 代码做不到,数据库设计总要 review 吧?
    都不做?那就不要抱怨是哪位同事或外包写的了。
    lc5900
        56
    lc5900  
       18 小时 54 分钟前
    写个 job ,每天定时扫下过生日的人加一岁(不是
    zerovoid
        57
    zerovoid  
       18 小时 47 分钟前
    明显是产品的问题,正常不是应该填写生日么,而且也要有修改生日的入口,
    大概率产品就画了一个年龄,其他啥也没有,或者压根就没产品。
    zerovoid
        58
    zerovoid  
       18 小时 45 分钟前
    @op351 #52 HR 系统看情况吧,如果没入职的人,填个求职时的年龄也正常,入职了就要更新了。
    leo72638
        59
    leo72638  
       18 小时 41 分钟前
    笑死,重新算一遍重新存就好了
    Howlaind
        60
    Howlaind  
       18 小时 27 分钟前
    再每年给发一次通知,让用户自己改年龄
    WuDiHaiTai
        61
    WuDiHaiTai  
       18 小时 13 分钟前
    #60 +1 解决不了问题就解决人,下次开 App 弹出界面让填生日,底下写行小字,说生日当天有福利,进一步吸引用户填写,不愿意填写的就直接把年龄隐藏掉,用户点击年龄就如上述,这种情况天知地知你知我知,用户八辈子也猜不到是你们搞错了年龄数据库。
    bowencool
        62
    bowencool  
       17 小时 58 分钟前
    再不济拿注册日期加一下啊
    v1
        63
    v1  
       17 小时 27 分钟前
    不绑定身份证的,让用户自己选生日、写年龄,都不可信
    jadeborner
        64
    jadeborner  
       16 小时 58 分钟前
    不都有创建日期这个字段吗?保存年纪咋了
    soul11201
        65
    soul11201  
       16 小时 49 分钟前
    @lchynn 他们公司的同事真是人才
    isbase
        66
    isbase  
       16 小时 40 分钟前
    哈哈哈,说明后端写的时候没动脑子
    levelworm
        67
    levelworm  
       16 小时 36 分钟前 via iPhone
    UI 上面改成注册年龄就完了,其他啥也不用。
    EastLord
        68
    EastLord  
       16 小时 17 分钟前
    今日乐子+1
    Bootis
        69
    Bootis  
       15 小时 12 分钟前
    1
    yeelone
        70
    yeelone  
       15 小时 7 分钟前   ❤️ 1
    @levelworm #67 有点屎上雕花的味道了哈哈哈
    BeiChuanAlex
        71
    BeiChuanAlex  
       14 小时 8 分钟前
    @tabris17 #14 张三|普通炉|男| 18 岁
    MIUIOS
        72
    MIUIOS  
       6 小时 27 分钟前
    实际上好多开源系统 age 都是 int 哈哈哈哈哈,我当初也发现了这个问题
    spadger
        73
    spadger  
       6 小时 5 分钟前
    天才设计
    fooso
        74
    fooso  
       6 小时 5 分钟前
    国脚 1573 每年都改广告词。🐶
    IMengXin
        75
    IMengXin  
       6 小时 5 分钟前
    @qwwuyu 已经自己手动改了的怎么办
    helionzzz
        76
    helionzzz  
       5 小时 54 分钟前
    不做实名绑定的也就是个字段而已吧,不过不管怎么样修改口还是要给客户的
    qwwuyu
        77
    qwwuyu  
       5 小时 31 分钟前
    @IMengXin 有审题的,看内容 "然后用户自己也没地方改"
    dcdlove
        78
    dcdlove  
       5 小时 30 分钟前
    @panxi 常见阿,十多年的外包公司,中的 sb 后端每个项目里都有年龄字段也是前台提交的
    kfpenn
        79
    kfpenn  
       5 小时 29 分钟前
    天才
    Admstor
        80
    Admstor  
       5 小时 14 分钟前
    扩展思维
    我怎么觉得在一些场景直接存年龄没啥问题呢?

    比如成人内容的时候,同时也遵循隐私保护,那么年龄只是确认客户是否达到法律年龄即可,没必要存详细的生日,既满足法规也保护隐私,这就足够了啊
    Leon777
        81
    Leon777  
       5 小时 12 分钟前
    可以优化一下界面把用户年龄隐藏了🤣
    hikarumx
        82
    hikarumx  
       5 小时 7 分钟前
    鬼才设计
    RicardoY
        83
    RicardoY  
       4 小时 51 分钟前
    是会存年龄字段的(年龄段),满足法规要求 & 保护隐私
    wancoco
        84
    wancoco  
       4 小时 48 分钟前
    用户当前年龄 = 当前日期 - createDateTime + 年龄
    我不是天才谁还算天才!
    wangtian2020
        85
    wangtian2020  
       4 小时 24 分钟前
    @lc5900 闰年生日:?
    poic
        86
    poic  
       4 小时 15 分钟前
    @henshang #51 都已经这样了,那咋办嘛,总不能从头都改一遍吧
    ganbuliao
        87
    ganbuliao  
       4 小时 14 分钟前
    @uqf0663 哈哈哈 对屎山都是这么来的 明明很简单的东西,也不思考 费了一圈的劲,各种增加复杂度,堆成了一座无法撼动的山 最好偷偷写个 cron 用 sql 改 这样别人重构了代码莫名的就新增了一个 BUG
    flytsuki
        88
    flytsuki  
       4 小时 7 分钟前
    用户表存生日,记录表存年龄,方便知道什么年龄的记录
    gefranks
        89
    gefranks  
       4 小时 6 分钟前
    这同事挺有远见的, DOB 算是 PII.
    newaccount
        90
    newaccount  
       3 小时 45 分钟前
    你好,我们这个年龄他不是实际意义上的年龄
    他记录的是用户注册那个时间点的年龄
    目的是在注册时合法合规
    如果深究,那就是这审核规范是从欧美日航港澳台小网站上一路做顺手了
    hervey0424
        91
    hervey0424  
       2 小时 54 分钟前
    @henshang 现在已经这样得情况下, 难道写个更新年龄的任务不是最简单的处理方式吗?
    Krylo
        92
    Krylo  
       2 小时 46 分钟前
    哈? 你们是 zhibo8 吗?
    前几天查利物浦球员信息发现萨拉赫、范戴克咋还是 30 出头呢,看旁边球员生日算出年龄还是 2 年前的。
    Krylo
        93
    Krylo  
       2 小时 44 分钟前
    banxiaobu
        94
    banxiaobu  
       2 小时 8 分钟前
    笑死,前司某个业务系统中的一张表真有地方真的是单独存的,有没有用就不知道了,因为我记得还单独存了生日字段
    hammy
        95
    hammy  
       2 小时 5 分钟前
    哈哈 有点好笑 感谢 lz
    lyxxxh2
        96
    lyxxxh2  
       19 分钟前

    会,用阿里云人脸分析的年龄。

    社交看情况吧,可能某些原因只要大概年龄。
    后端偷懒而已,懒着再次计算年龄。
    henshang
        97
    henshang  
       8 分钟前
    @poic #86
    @hervey0424 #91
    不改接口确实整个事务最简单,但是如果没有出生年月推算一下洗库,然后改一下接口计算逻辑会更恰当点,应该也费不了多少时间把
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5363 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 06:40 · PVG 14:40 · LAX 23:40 · JFK 02:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.