就我而言,我有一种创造性的方式来保存用户数据。让我解释:
我不知道哪些数据将保存在这个数据库中。例如,有人想保存他的icq号码,而我以前不知道,他可以把它写到哪里?他动态创建了一个新字段,并且在后台完成了一个插入操作,fields
并在 user_fields 中进行了一个插入操作,其中存储了新选项的新值。
表user
:
id username
1 rauchmelder
表fields
:
id name
1 firstname
2 lastname
表user_fields
:(旧值和当前值一样存储,只应使用最年轻的条目)
id user_id fields_id value date
1 1 1 Chris 1.Mai
1 1 2 Rauch 1.Mai
1 1 1 Christopher 2.Mai
结果应该是一个视图:
user.id user.username fields.firstname fields.lastname
1 rauchmelder Christopher Rauch
首先,这有意义吗?
其次,我应该在 MySQL 中还是在应用程序中解决它?
第三,如何在 MySQL as a View 中解决这个问题?