sqlvogel is correct in this answer .
With the exception of this small detail: whether blogs are redundant or not, it depends on whether you want / need to force the restriction that all blog tuples must have at least one corresponding BlogPost tuple. You have not indicated anything to make this clear.
The same applies to your third relvar posts, except that in this case it is unlikely that it could be valid for PostTitle to exist without it appearing as the name of at least one BlogPost.
If you need a SortingOrder repository as an extra depends on whether there can be BlogPosts that do not require sort order. If this cannot be the case, then your SortingOrder relvar will simply replace BlogPost. If possible, then you may have two reverses; or, alternatively, you can still have SortingOrder reverse and hack your way through the case of messages without ordering using a dummy value (for example, always -1).
source share