数据库设计 - 类别 - 对象关系
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库设计 - 类别 - 对象关系相关的知识,希望对你有一定的参考价值。
我必须存储具有不同类型属性的数据库对象。此外,我想将这些对象分组,并且对象可以属于多个类别。
示例对象:
Book (ID, Title, Author, Description)
Movie (ID, Title, Author, Genre)
Song (ID, Title, Singer, Year)
到目前为止,我尝试了两种方法:
方法1
使用字段(ID,CategoryName)创建Category表。
创建一个通用表并尝试将表字段与对象属性匹配。使用帮助程序表中的对象加入该类别
_CategoyObject_ (_CategoryID_, _ObjectID_).
这似乎是一种不好的做法,因为我们在常规表中有许多具有空值的列。同样参考this文章的第一点,将不同的对象存储在同一个表中是一种不好的做法。
方法2
使用字段(ID,CategoryName)创建Category表。
为每个对象创建表。
创建一个帮助表,以将categories表与对象表的名称链接:
_CategoyObject_ (_CategoryID_, *Object_Table_Name*)
如果我们想要获取给定类别的对象,此方法可以帮助我们找到要创建连接的表的名称。
但这会使查询复杂化,因为我们应该有一个查询来获取某个类别的表,另一个查询来获取对象的记录
这更难,因为我目前首先使用Entity Framework代码来创建数据库。
使用ADO.NET而不是实体框架获取数据以便于数据检索更方便吗?
你能否告诉我任何其他方法更简单的问题:
获取属于X类别的所有对象?
获取Y对象属于哪个类别?
创建三个表,并将其称为电影,书籍和歌曲。这样,您就不需要查找表的名称。当您需要书籍时,您将“从书本中选择*”。
以上是关于数据库设计 - 类别 - 对象关系的主要内容,如果未能解决你的问题,请参考以下文章
spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段