设想
假设用户是推销员。User 模型有许多 log_entries 用作销售数据的日常日志。用户还具有允许他们选择在其 log_entry 表单中可见的字段的首选项。所以,如果他们选择菠萝、香蕉和葡萄……这些就是表格中的字段。如果这些选择发生变化,数据不会丢失……只是在表单中不可见。现在,假设用户刚刚选择了蔓越莓销售帐户,但蔓越莓在他们的用户偏好表单中不是一个可选择的属性。他们需要能够创建那个“类别”。现在,菠萝季节结束了,所以他们登录到偏好设置并取消选中菠萝框并选中草莓框。现在,当他们在日志中输入数据时,将有一个草莓数据字段,但不是菠萝。
这种情况会带来一些挑战。一个是作为开发人员我不提前知道数据库列名称,因为用户可以动态创建新的“类别”(我可以要求用户联系我以根据需要添加更多,但是......)。而且,当用户创建一个新类别时...... log_entries 表不会有一个列来表示该新数据。
如何管理动态数据库列?postgres hstore 可以处理这个吗?
一行是基于日期的属于用户的条目。每列包含特定于属性的数据(例如......一列可以标题为“草莓”,它将包含当天售出的单位数量)