我正在构建一个应用程序,用户可以在其中创建存储在我的实体表中的实体,其中包含一些特性,例如" space_below"和"宽度"。用户还可以通过在每个人的实体中进行选择来创建他们自己的实体组。一旦他们选择了其他人的实体,我希望他们能够修改一些特性,例如" width"并为他们自己的组保存这些修改。在我的数据库中最好的方法是什么?
第一种方法 每次用户进行修改时,在Entity表中创建一个新记录(几乎是重复的),然后仅从更改它的组中引用该新实体。
在这种情况下,我需要在我的Entity表中添加一列,以区分原始的entites和复制的entites。
第二种方法
在任何情况下,我将在Group表和Entity表之间有一个联结表。在这个联结表中,我可以添加一个"修改"我在其中存储带有修改的JSON的列。像{ space_below: '8', width: '200' }
这样的东西。如果没有修饰,则列的值将为null。
我认为我更喜欢第二种方法,因为第一种方法涉及Entity表中的大量重复数据,但可能没有意识到其他含义。