您的直觉是不创建带有大量NULL的大表。从存储/检索/维护的角度以及数据验证的角度来看,这是一个坏主意(稍后会详细介绍)。
两种最常见的缓存:
1)有一个包含所有公共字段的用户表,其中包括“
userType”字段。然后为每个包含额外字段的用户类型创建一个单独的表。所有用户在用户表和一个或多个特定用户类型表中都有一行。这是用于存储和快速登录的最规范和最有效的方法。这也使您可以使用约束和外键来确保每种用户类型的所有必需信息均可用。
2)有一个包含所有公共字段的用户表。拥有另一个名为 UserAttributes之 类的 表
,该表具有用于userid,key和value的字段。特定用户的任何其他元数据都可以存储在此处。这样做的好处是,不需要任何数据库管理就可以为每种用户类型添加新的用户类型或要存储的元数据。但是,它不允许您在数据库级别进行任何数据验证。



