我已经创建了数十个用户登录系统,并且总是在表的末尾添加选项、标志、设置等,所以它非常大......
- 用户身份
- 用户名
- 用户姓氏
- 用户电子邮件
这只是开始。然而,对于其他类型的表格,我使用基于元的系统,我JOIN
在表格中添加了一些 id some_meta
,这总是有几个好处。这样做对用户也有好处吗?所以主users
表只包含 id、基本用户详细信息,然后是另一个用于偏好等的元表?这种事情的最佳做法是什么?
我已经创建了数十个用户登录系统,并且总是在表的末尾添加选项、标志、设置等,所以它非常大......
这只是开始。然而,对于其他类型的表格,我使用基于元的系统,我JOIN
在表格中添加了一些 id some_meta
,这总是有几个好处。这样做对用户也有好处吗?所以主users
表只包含 id、基本用户详细信息,然后是另一个用于偏好等的元表?这种事情的最佳做法是什么?
这真的取决于你的目标是什么。如果所有用户元数据都具有相同的superkey,(user_id
最有可能)我会将所有“元数据”保留在一个表中。将其分离到另一张桌子没有任何好处。
但是,如果客户的元数据要求可以变化和扩展/收缩,那么拥有三个表可能是有益的:一张用于用户,一张用于元数据列,一张用于用户的元数据:
(user_id, user_email)
(meta_id, meta_column_name)
(user_id, meta_id, user_meta_value)
这样做的好处是允许您动态添加和删除元数据值,并且它也不需要所有客户都具有所有相同的元数据列。