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

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

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

    吐槽贴

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

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

    我辛勤的同事们啊

    100 条回复    2025-09-25 16:55:48 +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 天前   ❤️ 51
    这是墓园系统吗?
    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 天前   ❤️ 4
    简单,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  
       1 天前
    外包不还是按照需求做的?产品谁设计的
    Cloud9527
        32
    Cloud9527  
       1 天前
    其实没毛病,我就想记录用户注册时的年龄
    hervey0424
        33
    hervey0424  
       1 天前
    写个任务, 每年执行一次增加以下年龄
    knva
        34
    knva  
       1 天前
    天才,我说的是数据库设计
    Cruzz
        35
    Cruzz  
       1 天前
    有注册时间自己算一下呗,问题不大。
    rabbbit
        36
    rabbbit  
       1 天前
    还行,没说后端让前端自己根据注册时间加一下。
    julyclyde
        37
    julyclyde  
       1 天前
    我大学时的学生证上也是写的年龄
    一些其他的证件(我指的不是死亡证明)好像也是年龄
    nekoneko
        38
    nekoneko  
       1 天前
    如果是我设计的话, 一般会把生日存为虚拟列.
    idealhs
        39
    idealhs  
       1 天前
    同事纯脑瘫,我刚毕业也写不出这种唐氏逻辑
    realpg
        40
    realpg  
    PRO
       1 天前
    以前 QQ 就得每年自己改...
    T1205
        41
    T1205  
       1 天前
    看看有没有创建时间,然后根据当前的时间计算一把
    Rat3
        42
    Rat3  
       1 天前
    年龄不参与业务的话,有啥问题吗,之前 qq 就这么设计的
    HHAO2019
        43
    HHAO2019  
       1 天前
    不是产品的问题吗
    Hopetree
        44
    Hopetree  
       1 天前   ❤️ 4
    只能说,产品是天才,开发也是,前端是,后端也是,测试也是,这一个简单的问题,暴露出一群天才
    v2er119
        45
    v2er119  
       1 天前
    各位都是写代码的,都没想到:有没有可能原始需求就是要一个注册时的用户年龄,然后后面 UI 显示成 实时年龄了。
    jiangzm
        46
    jiangzm  
       1 天前
    有生日信息就不要填年龄信息,不需要生日信息可以单独填年龄的话应该就是个参考信息,用户自己决定对外展示的年龄。
    wangtian2020
        47
    wangtian2020  
       1 天前
    你不说我还真想不起来这种情况。屁大点事不至于上纲上线,改就完事了
    wangtian2020
        48
    wangtian2020  
       1 天前
    社交软件万一用户要装自己永远 18 岁呢
    henshang
        49
    henshang  
       1 天前   ❤️ 1
    @uqf0663 #6 直接全部推算出注册年月日,洗库,然后废弃之前年龄字段不就行了,你这什么回路
    unco020511
        50
    unco020511  
       1 天前
    哈哈,永远 18 岁了
    henshang
        51
    henshang  
       1 天前
    @hervey0424 #33
    @poic #12 你们真的是设计过数据库吗
    op351
        52
    op351  
       1 天前
    实际上有些商业 HR 系统的人员表里是有 AGE (年龄)字段的
    我看了我司的 HR 系统的这张表,AGE 是自动更新的
    xiaobei206
        53
    xiaobei206  
       1 天前
    设置年龄可以让用户自己随便修改不就完事了,以前 QQ 就这样
    duzhuo
        54
    duzhuo  
       1 天前 via Android
    哈哈 上学没教吗
    Pipecraft
        55
    Pipecraft  
       1 天前
    开发团队不 review 代码吗?
    就算 review 代码做不到,数据库设计总要 review 吧?
    都不做?那就不要抱怨是哪位同事或外包写的了。
    lc5900
        56
    lc5900  
       1 天前
    写个 job ,每天定时扫下过生日的人加一岁(不是
    zerovoid
        57
    zerovoid  
       1 天前
    明显是产品的问题,正常不是应该填写生日么,而且也要有修改生日的入口,
    大概率产品就画了一个年龄,其他啥也没有,或者压根就没产品。
    zerovoid
        58
    zerovoid  
       1 天前
    @op351 #52 HR 系统看情况吧,如果没入职的人,填个求职时的年龄也正常,入职了就要更新了。
    leo72638
        59
    leo72638  
       23 小时 57 分钟前
    笑死,重新算一遍重新存就好了
    Howlaind
        60
    Howlaind  
       23 小时 43 分钟前
    再每年给发一次通知,让用户自己改年龄
    WuDiHaiTai
        61
    WuDiHaiTai  
       23 小时 29 分钟前
    #60 +1 解决不了问题就解决人,下次开 App 弹出界面让填生日,底下写行小字,说生日当天有福利,进一步吸引用户填写,不愿意填写的就直接把年龄隐藏掉,用户点击年龄就如上述,这种情况天知地知你知我知,用户八辈子也猜不到是你们搞错了年龄数据库。
    bowencool
        62
    bowencool  
       23 小时 14 分钟前
    再不济拿注册日期加一下啊
    v1
        63
    v1  
       22 小时 43 分钟前
    不绑定身份证的,让用户自己选生日、写年龄,都不可信
    jadeborner
        64
    jadeborner  
       22 小时 14 分钟前
    不都有创建日期这个字段吗?保存年纪咋了
    soul11201
        65
    soul11201  
       22 小时 5 分钟前
    @lchynn 他们公司的同事真是人才
    isbase
        66
    isbase  
       21 小时 56 分钟前
    哈哈哈,说明后端写的时候没动脑子
    levelworm
        67
    levelworm  
       21 小时 52 分钟前 via iPhone
    UI 上面改成注册年龄就完了,其他啥也不用。
    EastLord
        68
    EastLord  
       21 小时 34 分钟前
    今日乐子+1
    Bootis
        69
    Bootis  
       20 小时 28 分钟前
    1
    yeelone
        70
    yeelone  
       20 小时 23 分钟前   ❤️ 1
    @levelworm #67 有点屎上雕花的味道了哈哈哈
    BeiChuanAlex
        71
    BeiChuanAlex  
       19 小时 24 分钟前
    @tabris17 #14 张三|普通炉|男| 18 岁
    MIUIOS
        72
    MIUIOS  
       11 小时 43 分钟前
    实际上好多开源系统 age 都是 int 哈哈哈哈哈,我当初也发现了这个问题
    spadger
        73
    spadger  
       11 小时 21 分钟前
    天才设计
    fooso
        74
    fooso  
       11 小时 21 分钟前
    国脚 1573 每年都改广告词。🐶
    IMengXin
        75
    IMengXin  
       11 小时 21 分钟前
    @qwwuyu 已经自己手动改了的怎么办
    helionzzz
        76
    helionzzz  
       11 小时 10 分钟前
    不做实名绑定的也就是个字段而已吧,不过不管怎么样修改口还是要给客户的
    qwwuyu
        77
    qwwuyu  
       10 小时 47 分钟前
    @IMengXin 有审题的,看内容 "然后用户自己也没地方改"
    dcdlove
        78
    dcdlove  
       10 小时 46 分钟前
    @panxi 常见阿,十多年的外包公司,中的 sb 后端每个项目里都有年龄字段也是前台提交的
    kfpenn
        79
    kfpenn  
       10 小时 45 分钟前
    天才
    Admstor
        80
    Admstor  
       10 小时 30 分钟前
    扩展思维
    我怎么觉得在一些场景直接存年龄没啥问题呢?

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

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

    社交看情况吧,可能某些原因只要大概年龄。
    后端偷懒而已,懒着再次计算年龄。
    henshang
        97
    henshang  
       5 小时 24 分钟前
    @poic #86
    @hervey0424 #91
    不改接口确实整个事务最简单,但是如果没有出生年月推算一下洗库,然后改一下接口计算逻辑会更恰当点,应该也费不了多少时间把
    lyxxxh2
        98
    lyxxxh2  
       4 小时 38 分钟前
    @henshang
    看到你们讨论,居然还改字段??? 无语了。
    年龄 = 当前时间 - 注册时间 + 年龄
    fengpan567
        99
    fengpan567  
       3 小时 7 分钟前
    那真的牛批
    edsion1107
        100
    edsion1107  
       3 小时 0 分钟前
    @edsion1107 补充下,运动健康 app 的年龄应该不是社交属性,心率区间是根据这个来算的,所以年龄在很多时候还蛮重要的
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3136 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 11:56 · PVG 19:56 · LAX 04:56 · JFK 07:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.