gpt4 book ai didi

mysql - 我将如何设计这个 MySQL 模式?

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:36 28 4
gpt4 key购买 nike

我正在建立一个社交网络。对于每个用户,我都期望有很多关于他们的信息。 关系状态、工作、家乡、学校等我相信这些个人资料属性在未来会越来越大。

我应该将它们全部存储在一个表中,每个属性作为一列吗?

或者我应该为“用户配置文件”创建 1 个表,其中包含基本信息...然后有其他表(学校表、关系表、工作表等)外键吗?

我的问题是:拆分成多个表时的最佳做法是什么?

最佳答案

一种方法是将用户属性存储在与主“用户”表分开的表中。该属性表将具有三列,“用户 ID”、“属性类型”和“值”。属性类型可以是一些标识符,用于指定您喜欢的任何属性(家乡、学校等)。

User table
------------
UserId
Name

UserAttribute table
---------------------
UserId
AttributeId
Value

Attribute table
------------------
AttributeId
AttributeName

一旦你设置了这个结构,添加一个新的属性就像在描述属性的属性表中添加一个新行一样简单。然后在UserAttribute表中根据需要填写用户的属性。无需昂贵的 ALTER TABLE 操作来添加新列。

关于mysql - 我将如何设计这个 MySQL 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8216823/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com