我有一个拥有以下事件的数据库:
event(id, name, type, startDate, endDate)
该类型是另一个自定义对象(Type(id, name, icon)
),它被链接为一对多。
我想添加另一个名为EventDetail的自定义对象,其中包含详细信息,但字段与事件类型不同。
例如,如果我的活动是旅行类型,则字段可以是目的地维基百科的网络链接,照片,但如果活动是工作实习,他们显然会有所不同。
什么样的结构可以处理这种情况?
如果它很重要,我正在使用java for android,一个名为SugarORM的ORM库
我最终前往ORM库管理我的数据库。使用Type和EventDetail之间的一对一关系以及Type和Event之间的一对多关系,它现在非常适用。
答案 0 :(得分:2)
你可以用几种不同的方式......
一种方法是为EventDetail
创建一个包含所有type
所需字段的全能表,并使用type
确定您在该表中读取的字段
另一种方法是,如果你没有很多不同的类型,那就是为每个类型创建一个表格,根据你的查询需要加入每个类型,你需要加入每个类型。基于类型的表(可能使用UNION [ALL]
,每type
一个查询 - 或创建视图)。
根据情况和用途,第三种,可能更理想的是从数据库中消除这种复杂程度。将您的“活动详细信息”存储为CLOB
或BLOB
或XMLTYPE
等,然后使用type
将数据反序列化到客户端的对象。