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

1 天前
 elinktek

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

庞大系统, 这里怕其他开发用其他方式建立了缓存, 交割期会产生比较严重的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1153138

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX