我有一个关于核心数据建模的问题想问。
我正在开发一款可以帮助用户内存诗歌的应用。这首诗分为如下:
这首诗分为多个章节
每章分为多行
现在,正因为如此,我想我会创建两个实体,如下所示:
- 章节实体,具有以下属性:ChapterNumber、ChapterTitle 和 LineEntity。
- LineEntity,属性有:ChapterNumber、LineNumber、LineSegment(每行分为a、b两部分)、LineText
因为我打算同时为用户播放音频,所以我还需要对音频文件的引用,这就是为什么我认为我也需要 AudioFile 的实体。因此我也会有:
- AudioFile 实体,具有以下属性:ChapterNumber、LineNumber、Start(相关音频开始的时间点)、End(相关音频结束的时间点),可能还有 fileName。我有一个完整的音频文件,但是,我想知道是否应该将音频文件分解为单独的组件,其中每个文件代表诗歌中的每一行。我个人不确定这是否是正确的方法。
所以我的章节实体会调用 Line 实体的集合,而每个 Line 对象都会引用一个音频实体。这有意义吗?
Best Answer-推荐答案 strong>
我可以想象每首诗都有一个音频文件,每个 Line Entity 都应该引用该音频文件的一部分。我会创建实体“AudioFile”,但我会用(如您所说)字段将其称为“AudioFileSplit”:ReferenceToLineEntity、Start、End。
请注意,您不需要此实体中的 ChapterNumber 或 LineNumber 字段,因为这个新实体已经引用了它们(通过行引用,您可以获得行数据、章节数据和诗歌数据)。
现在,您需要存储音频文件的 URL。可能您有一个名为“诗”的实体。如果每首诗都有一个音频文件,则应该向诗实体添加一个新字段(可能是 AudioFileURL?)
恢复,我的 Modell 会是这样的
PoemEntity:[诗歌字段]、AudioFileURL、ReferenceToChapters
ChapterEntity:[章节字段],SingleReferenceToPoem, ReferenceToLines
LineEntity:[Fields For ine], SingleReferenceToChapter, SingleReferenceToAudioFileSplit
AudioFileSplit:SingleReferenceToLine,Start,End
注意 LineEntity 和 AudioFileSplit 之间的关系是 1:1,因此您甚至可以进一步简化:
LineEntity:[线的字段],SingleReferenceToChapter,开始,结束。
(并且没有 AudioFileSplit 实体)
问候 ;)
关于ios - 尝试为 iOS 中的音频播放应用程序设计核心数据模型,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/33623469/
|