关于表的结构更改,恳求解决方案
原来表的用途的存储“公告记录”,表的结构是:
SN_ID,Title,Content,EndTime,其中SN_ID是主键,每增加一条记录,该字段的值自动增1。
原来的设计的访问过程是:每个客户账户(另外有一张表记录客户信息,UserId为主键)访问该表所有记录,根据EndTime(公告时限)读出未过期的记录。
需求变更:
更改数据库结构,在往该表插入记录时同时指定目标客户UserId(一个或多个),使程序根据客户UserId查询该表时可以列出与目标客户UserId相匹配的记录,不匹配的记录在查询时不列出来。
我的方案:增加一个targetUserId字段,记录一个目标客户的UserId,当有公告需要发送给多个目标客户时,插入与目标客户相同个数的记录,如:
SN_ID Title Content EndTime targetUserId
1 通知1 节日快乐 2006-1-1 U0001
2 通知1 节日快乐 2006-1-1 U0002
3 通知1 另一个公告 2008-3-29 U0001
这样,我用一个UserId匹配targetUseId就可以查询出属于该客户的公告
但现在的问题是:当我想查询某个公告的所有记录时,如果我以公告的标题(Title)为查询条件,会查询出多余的记录,因为Title不是主键,可以重复(如记录3),如果我用主键(SN_ID)为查询条件,只能查出一条记录,记录有缺少
我该怎么办才好~~,怎么办才好~~?