使用 Firebase 的 UID 作为数据库中的主键是个好主意吗?



所以我目前正在构建一个android应用程序,对于登录和注册过程,我使用Firebase。其他所有内容都将存储在我的服务器/数据库中。我的问题是,在我自己的数据库中使用Firebase UID(varchar(作为主键是否是一种好的做法?

还是使用自动递增int作为主键,并简单地将UID存储在具有唯一约束的另一列中更好?

我一直认为使用varchar是一种糟糕的做法,但话说回来,我看到postgresql有UUID函数,我认为它正是为了这个目的??

有什么想法吗?

UID由Firebase生成,而不是由(或您的数据库(生成。因此,我不会将它用作您的数据库中的主键。

此外,UUID不是postgres中的varchar。使用UUID的唯一真正好处(在我看来(是它在您的环境之外也是唯一的。如果您想与其他应用程序共享您的id,这可能是有益的。

数据类型uuid存储由RFC 4122、ISO/IEC 9834-8:2005和相关标准定义的通用唯一标识符(uuid(。(有些系统将此数据类型称为全局唯一标识符或GUID。(此标识符是一个128位的量,由一种算法生成,该算法的选择使已知世界中的任何其他人都不太可能使用相同的算法生成相同的标识符。因此,对于分布式系统,这些标识符提供了比序列生成器更好的唯一性保证,序列生成器仅在单个数据库中是唯一的。

最新更新