需求场景: 比如对于一个domain object TASK来说,如果用户提出,不同登陆的用户需要各自配置TASK不同的列,这个时候,数据库应该怎么去满足这种需求呢?以下是个人提出的一种简单的方案。
解决方案: 首先建立TASK表,和TASKColumn表,同时建立两张表之间的多对多关系表,关系表中既可以存储相应的value。比如
TASK表中 TASKColumn表
TaskID TaskColumnID TaskColumnType
1 3 int
2 4 nvarchar
RelationTask_Column表
TaskID TaskColumnID Value
1 3 -1
1 4 Casper
2 3 0
这样,就可以通过变形的多对多关系处理这样的问题