2014-01-06 80 views
0

我真的不确定我是否做对了。以层次结构方式连接类的最佳方法?

我有由具有我想从数据库中读取和对象的列表填补他们这些“参数”

Filepath 
Artist 
Album 
Track 
Year 
Duration 
Tracknumber 
Genre 

表的数据库。

我已经做了什么(我不确定这是否是正确的做法)是有一个Artist类的列表,它有一个名称和一个专辑列表。

专辑对象具有名称,年份和曲目列表。

跟踪对象具有名称,持续时间,流派,年份和文件路径。

它基本上是一个列表树,艺术家在这里开辟了一个专辑分支,而专辑则打开了另一个分支。

这是设置的最佳方法吗?

希望你明白我在说什么。谢谢。

+1

是的,为什么不呢?它匹配_domain_相当不错。 –

+1

看起来不错。如果它符合你的需求,就去用它吧。 – nvoigt

+0

好的,谢谢。 – Tokfrans

回答

0

这是设置的最佳方法吗?

取决于你对“最好”的解释。

好像是你已经可以在分层的形式表示(或者有一个基于层次的视图),其主要关键是Artist关系数据,就像这样:

  • 艺术家
    • 相册
      • 曲目

但数据可能有可能已经由两个以上的艺术家创作的曲目(或整个专辑),例如。您的结构也可以被呈现这样的:

    • 相册
      • 艺术家

恕我直言,这种数据可以在得到更好的服务关系结构如下:

  • Artist
    • Name,字符串属性
    • AlbumsAlbum对象
    • Tracks的集合,Track对象
  • Track
    • 012集,字符串属性
    • Year,整型属性
    • Artists,集合或Artist对象
    • AlbumAlbum对象引用(因为轨道属于单个专辑)

如此反复。这甚至可以帮助动态创建不同的分层视图。

+0

但是,您将如何创建一个对来自Track的Album类的Artists'Album对象的引用? – Tokfrans

+0

@Tokfrans可能使用延迟加载。 – OnoSendai

相关问题