这个数据库架构好吗? (与同一个表不止一个关系)

时间:2013-03-02 07:55:54

标签: mysql nhibernate database-design relational-database castle-activerecord

Blog
    Id
    ...
    List of Posts
    Last Post           <---
    Most Viewed Post    <---

Post
    Id
    ...
    Blog (the blog it belongs to)

我以前在List of Posts实体中只有一个Blog,但之后我必须显示一些像这样的Blogs表:

Blog Id  | ... |  Last Post  | Most Viewed Post
----------------------------------------------
   1     | ... |  Something  |     Post 1
   1     | ... |  Something  |     Post 10
   1     | ... |  Something  |     Post 5
   1     | ... |  Something  |     Post 4

并仅使用List of Posts,并将其他字段作为Blog中的属性,从List of Posts计算内存,但我找不到排序方式在SQL查询中使用Last PostMost Viewed Post(我使用分页,按列排序等)

我正在NHibernate使用Active Record MySQL以及{{1}}。

1 个答案:

答案 0 :(得分:0)

将计算出的属性映射为公式

Refernce(x => x.LastPost).Formula("(Select Max(p.Id) FROM post p WHERE p.BlogId = Id)");

然后你可以在查询中使用它们