【IT168 技术文档】本篇中,我们将继续在论坛应用程序中添加一些新的功能以支持用户提交新的消息并进行相应的应答支持。
一、 关于Message类的重新思考
随着程序的不断进展,我很快发现,我最早设计的那个Message类设计根本不会工作。开始时,此Message类被假定为描述一条寄送到论坛的消息。然后,与此相同的Message类用于描述一个线程中的原始消息以及对于此线程的所有的应答消息。
最初的Message类包括下列属性:
Id
ParentId
Author
Subject
Body
EntryDate
其中,ParentId属性描述的消息是当前消息的原始消息(即当前消息是一条应答消息)。例如,如果你正在对消息1作出回答,那么ParentId就是1。如果该消息开始一个新的线程,那么ParentId就是NULL。
遗憾的是,我发现我还需要添加一个ParentThreadId属性;否则,检索一个特定的线程中的所有消息的数据库逻辑简直是太丑陋了。因此,我修改了一下该Message类并使支持下列属性:
Id
ParentThreadId
ParentMessageId
Author
Subject
Body
EntryDate
注意,上面这个Message类现在拥有两个新的属性:一个是ParentThreadId属性,另一个是ParentMessageId属性。我使用ParentThreadId属性检索相同线程中的所有消息。此外,该ParentMessageId属性还可以应用于一个视图中以显示相同的线程中不同的消息之间的关系。
基于MVC框架开发Web论坛之新功能篇
0
相关文章