• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ghjh
V2EX  ›  程序员

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

  •  
  •   ghjh · Sep 24, 2025 · 16533 views
    This topic created in 404 days ago, the information mentioned may be changed or developed.

    吐槽贴

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

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

    我辛勤的同事们啊

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

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

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

    社交看情况吧,可能某些原因只要大概年龄。
    后端偷懒而已,懒着再次计算年龄。
    henshang
    henshang
    Sep 25, 2025
    97
    @poic #86
    @hervey0424 #91
    不改接口确实整个事务最简单,但是如果没有出生年月推算一下洗库,然后改一下接口计算逻辑会更恰当点,应该也费不了多少时间把
    lyxxxh2
    lyxxxh2
    Sep 25, 2025
    98
    @henshang
    看到你们讨论,居然还改字段??? 无语了。
    年龄 = 当前时间 - 注册时间 + 年龄
    fengpan567
    fengpan567
    Sep 25, 2025
    99
    那真的牛批
    zjb861107
    zjb861107
    Sep 25, 2025
    100
    @edsion1107 补充下,运动健康 app 的年龄应该不是社交属性,心率区间是根据这个来算的,所以年龄在很多时候还蛮重要的
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3167 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 228ms · UTC 00:40 · PVG 08:40 · LAX 16:40 · JFK 19:40
    ♥ Do have faith in what you're doing.