在我的关系数据库中,我想存储有关用户的详细信息(firstName
,lastName
,email
...)。所以这意味着我有一个Users
表。
这些字段将来可能会发生变化(可以添加/删除),并非所有用户都有相同的详细信息 - 例如某些用户可能没有email
。)
这些数据是在用户提交某种表格时在不同场合收集的。
我希望能够存储,例如,用户输入其名字的所有表格(" Mike","迈克","迈克尔&#34 ;," michael"等),以及他们以这种方式进入的次数。
选项:
Users
表中,有多个列/字段,每个字段/字段存储一个字符串编码的JSON对象(例如{"Mike": 5, "Michael": 3}
。由于显而易见的原因,这很糟糕。userId
作为外键和一个键入的firstName
。这很糟糕,因为这意味着为每个字段创建(或删除)表。userId
存储为外键和为该用户输入的数据。我试图了解在关系数据库中是否有更好的方法来实现这一目标,或者可能是切换到非关系型数据库的转折点。
答案 0 :(得分:1)
如果您对关系数据库有一些限制,那么您可以创建一个BLOB/CLOB
列,它可以存储JSON
,以便您可以管理数据库中的动态更改,如您所述。
但根据您所描述的情况,非关系型数据库是您需求的最佳选择。您可以根据需要添加或删除任意数量的列。