Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database design 简单的数据库设计-存储消息_Database Design - Fatal编程技术网

Database design 简单的数据库设计-存储消息

Database design 简单的数据库设计-存储消息,database-design,Database Design,我想设计一个包含消息的简单数据库。每条消息都有一个类别。每条消息可以有一个或多个子类别,但可能根本没有子类别 分类表 分类, 类别 子类别表 子类别键, 分类, 子类别 消息表 MessageKey, 子类别键, 信息 这种设计的问题是,如果消息类别没有子类别,如何检索该类别的消息 最好的方法是什么?我是否应该有“无”子类别?更改消息表,使其指向类别表 MessageTable ------------ MessageKey CategoryKey Message 为邮件可能具有的一个或多个子

我想设计一个包含消息的简单数据库。每条消息都有一个类别。每条消息可以有一个或多个子类别,但可能根本没有子类别

分类表 分类, 类别

子类别表 子类别键, 分类, 子类别

消息表 MessageKey, 子类别键, 信息

这种设计的问题是,如果消息类别没有子类别,如何检索该类别的消息


最好的方法是什么?我是否应该有“无”子类别?

更改消息表,使其指向类别表

MessageTable
------------
MessageKey
CategoryKey
Message
为邮件可能具有的一个或多个子类别添加MessageSubcategory表

MessageSubCategoryTable
-----------------------
MessageKey
SubCategoryKey
您可以使用以下psudeo SQL获取任何子类别:

Select Subcategory
From SubCategoryTable, MessageSubCategoryTable
Where CategoryKey = CategoryKey from MessageTable 
And SubCategoryKey = SubCategoryKey from MessageSubCategoryTable

谢谢你。那么,为给定类别选择所有消息的伪SQL是什么呢?从MessageTable中选择Message,其中Category=MyCategory,SubCategory=?有人对我的查询有答案吗?对于给定的类别,psuedo SQL将是从MessageTable中选择Message,其中Category=MyCategory。如果要包括子类别,则psuedo SQL将是SELECT Message FROM MessageTable,其中Category=MyCategory&从Subcategory表中选择Subcategory,其中Category=MyCategorysubcategory表没有Category字段,但它有Category键。例如,如果类别为“生日”,并且它有一个子类别30、40、50等。那么我如何将类别为“生日”且子类别为“60”的所有邮件带回?这是可行的,尽管如果我插入新邮件,可能很难维护,我还需要将其插入子类别表中。。。