您将如何设计具有自定义字段的用户数据库
这个问题是关于我应该如何设计一个数据库,它可以是关系型/ nosql数据库,这取决于什么是更好的解决方案 根据要求,您需要创建一个系统,该系统将包含一个跟踪“公司”和“用户”的数据库。一个用户总是只属于一个公司 用户只能属于一个公司 一个公司可以有很多用户 “公司”表的设计非常简单。公司将具有以下属性/列:(让我们保持简单) ID, COMPANY_NAME, CREATED_ON 第一种情况 简单明了,用户都具有相同的属性,因此可以通过关系样式,用户表轻松完成此操作: ID, COMPANY_ID, FIRST_NAME, LAST_NAME, EMAIL, CREATED_ON 第二种情况 如果不同的公司想要为其用户存储不同的配置文件属性,会发生什么情况。每个公司将具有一组定义的属性,这些属性将应用于该公司的所有用户。 例如: 公司A要存储:LIKE_MOVIE(布尔值),LIKE_MUSIC(布尔值) 公司B要存储:FAV_CUISINE(字符串) 公司C要存储:OWN_DOG(布尔值),DOG_COUNT(整数) 方法1 暴力方式是为用户提供一个单一的架构,并在不属于公司的情况下让其为空: ID, COMPANY_ID, FIRST_NAME, LAST_NAME, EMAIL, LIKE_MOVIE, LIKE_MUSIC, FAV_CUISINE, OWN_DOG, DOG_COUNT, CREATED_ON 这有点麻烦,因为您最终会得到很多NULL,并且用户行的列与它们不相关(即,属于公司A的所有用户的FAV_CUISINE,OWN_DOG,DOG_COUNT的值为NULL) 方法2 第二种方法是拥有“自由格式字段”: ID, COMPANY_ID, FIRST_NAME, LAST_NAME, EMAIL, CUSTOM_1, CUSTOM_2, CUSTOM_3, CREATED_ON 由于您不知道什么是自定义字段,因此这本身就很麻烦,数据类型将无法反映所存储的值(例如,我们将int值存储为VARCHAR)。 方法3 …