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

請問一下國內的數據庫設計邏輯是不是都是設計成 username 不可刪除或修改的?

  •  
  •   elinktek · 1 天前 · 1886 次点击

    以 12306 railway 和智行火車票舉例,每個人的實名信息是唯一通過身份證和人臉確定,設計為 userID ,railway 的登錄名為 username1 ,智行的為 username2 ,這兩個同時指向 userUD ,現在我想刪除 username2 的所有信息在之下裡面沒找到註銷的地方( Android 和 IOS 版本都看了),只有在 railway 裡有註銷(這是註銷 userID ),如果註銷再再次註冊實名很麻煩。

    以上是 gemini 給出的回答,我想問下有辦法刪除 username2 嗎?

    25 条回复    2025-08-19 19:03:59 +08:00
    Chaidu
        1
    Chaidu  
       1 天前
    不是,那是因为他们技术太菜
    ymy3232
        2
    ymy3232  
       1 天前
    12306 是国铁集团的,智行是单独的商业公司目前是携程旗下,智行删除用户账号要找智行的客服吧,不过现在国内的应用删除逻辑大部分都是软删除吧
    kevinxzhao
        3
    kevinxzhao  
       1 天前
    是因为删除这个功能带来的收益为 0 ,所以没做这个功能。
    skiy
        4
    skiy  
       1 天前
    注销账号后,原来的用户名不能使用,这个比较不爽。
    0o0go
        5
    0o0go  
       1 天前
    @skiy 因为基本都是伪删除,只是标记这个账号被注销了,不给登录。所以你不能使用同一个账号名去新注册
    wangtian2020
        6
    wangtian2020  
       1 天前
    不做删除功能会怎么样吗
    totoro52
        7
    totoro52  
       1 天前
    @Chaidu 做过开发的都知道,一个用户的 id 不知道关联了多少业务逻辑,你敢随便硬删?
    skiy
        8
    skiy  
       1 天前
    @0o0go 伪删除这样也不合理。应该将此用户名重命名一下:比如我用户名为 hard ,那它就便命名为 __deleted_hard_20250818 这样子。否则很影响用户体验。
    clarkethan
        9
    clarkethan  
       1 天前
    主要是应该不少地方可能为了性能之类的考虑,做了很多用户名的冗余字段,所以改一下用户名伤筋动骨,也确实很多系统会以用户名作为用户的唯一识别,而不是 userid
    niubee1
        10
    niubee1  
       1 天前
    删除这个操作太恐怖了,你想想要删除多少和这个用户关联的数据。我现在基本都是把要删除的用户的 username 和昵称(如果昵称也要唯一的话)给加个随机数改掉,把 username 和 nickname 空出来。
    elinktek
        11
    elinktek  
    OP
       1 天前
    感谢各位的回复,想再問一下目前中國默認的這個設計邏輯是中國特色嗎?國外的設計邏輯是否也一樣,下面是我問 AI 的回答:

    第二部分:中国大陆所有数据库都是这个逻辑思路吗?
    在纠正了上述前提后,我们来回答您的核心问题。

    答案是:技术底层不是,但业务逻辑层有共通之处。

    技术底层(数据库设计)不是:

    全球的数据库设计(无论是关系型数据库如 MySQL ,还是非关系型数据库如 MongoDB )都遵循通用的技术范式和理论。中国大陆的公司和硅谷的公司在技术选型和基础设计上没有本质区别。不存在一个“中国特色”的数据库设计理论。

    业务逻辑层(应用思路)有共通之处:

    您感受到的“共通逻辑”,并非来自数据库技术本身,而是源于中国大陆独特的**“实名制监管环境”**。

    这个共通的逻辑思路是:以“国家法定身份信息”为锚点,构建各自独立的账户体系。

    这个逻辑可以分解为三点:

    ① 核心身份的唯一性:
    在中国,几乎所有重要的互联网服务(金融、通信、出行、游戏、社交)都必须与用户的身份证号码进行绑定,完成实名认证。这个由国家保证的身份信息,是每个用户在数字世界的“根”。

    ② 各平台账户的独立性:
    没有任何两家不同的商业公司会共享同一个用户数据库或 UserID 。 您的微信账户、支付宝账户、12306 账户、智行账户,都分别存在于腾讯、蚂蚁集团、中国铁路、携程各自的服务器上,是完全独立的记录。

    ③ “实名信息”作为关联键:
    这些独立的账户,虽然 UserID 各不相同,但它们内部都绑定了您同一个身份证号。这个身份证号就像一条无形的线,将您在不同“数据孤岛”中的身份关联了起来。
    lonenol
        12
    lonenol  
       1 天前
    AI 还能知道各个公司的用户表是怎么设计的?
    xqzr
        13
    xqzr  
       1 天前
    @Livid #11 AI
    Chaidu
        14
    Chaidu  
       1 天前
    @totoro52 #7 我们说的是 username ,不是 id 。Telegram 和 WeChat 都可以修改 username
    insub
        15
    insub  
       23 小时 53 分钟前
    @elinktek “中国大陆所有数据库” ....
    这应该包括了我写的那些吧,我写的那些,业务都是通过 userid 关联,username = nickname ,随便改
    marcong95
        16
    marcong95  
       15 小时 44 分钟前
    兄台逻辑感觉有点混乱,12306 和智行两个不同平台的用户怎么可能使用同一个 userID 确定,除非你说得是更抽象的「用户身份」。实名登记信息只是作为一个普通的业务信息记录的。而且你只要实际注册一个,你就会发现你在各种登记实名身份信息之前,你的账号其实已经创建了,只是功能受限而已。

    考虑到兄台习惯使用繁体字,且把 12306 称为 railway ,猜测并非大陆常住居民。大陆互联网平台的所谓「强制实名制」,均只是登记实名信息,只有涉及金融等特殊行业才会实际登记「国家法定身份信息」,而大多数一般互联网平台只是登记「已经使用『国家法定身份信息』实名认证的手机号」。
    montaro2017
        17
    montaro2017  
       15 小时 4 分钟前
    @skiy #8 那同名的用户又注销了呢
    COW
        18
    COW  
       14 小时 56 分钟前
    标题结论:不是。具体到问题,智行虽然是使用 12306 的账号,但是有会员付费,那应该是有自己的一套账号体系的。所以规定上该 APP 应提供单独的注销服务,如果没有可以向工信部投诉。
    skiy
        19
    skiy  
       14 小时 48 分钟前
    @montaro2017 ?作为程序员,怎么想不出来呢?你定义以 __作为前缀是非法的用户名,那就不可能有实际用户能注册得到。又何来“”同名的用户名?再者,就算同名的,一样的操作也可以,在前面添加固定参数,你限制注册长度就行了。
    realpg
        20
    realpg  
    PRO
       13 小时 46 分钟前
    @insub #15
    大部分系统都是基于 user id (数字化主键)关联
    username 都是 nickname 看起来是随便改的

    但是庞大系统, 基本不会让改 username 的
    因为有一个地方, 基本都会用 username, 那就是登录逻辑 基本用的是用户名

    庞大系统, 这里怕其他开发用其他方式建立了缓存, 交割期会产生比较严重的问题
    nekoneko
        21
    nekoneko  
       9 小时 3 分钟前
    @montaro2017 deleted 字段定义为 bigint 类型, 没删除时为 null , 删除了置为当前的时间戳
    fengpan567
        22
    fengpan567  
       8 小时 22 分钟前
    怎么感觉你说的 nickname ,不是 username 。看系统设计,我们全部都是用的 userId ,username 只要不重复就行
    elinktek
        23
    elinktek  
    OP
       8 小时 15 分钟前
    @fengpan567 那你們應該是私企,樓上很多反饋說明了私企的專業性還是高於國企的
    wu67
        24
    wu67  
       7 小时 11 分钟前 via Android
    删除收益为 0 ,同时有被投诉以及数据溯源风险,没必要做,把用户名邮箱手机号覆盖掉就行
    catamaran
        25
    catamaran  
       6 小时 33 分钟前
    @xqzr AI 恐惧症?人家又不是用 AI 回答别人的问题
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1368 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:37 · PVG 01:37 · LAX 10:37 · JFK 13:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.