非常量项的数据库结构
database structure for unconstant items
我有一个数据库,其中包含以下事件:
event(id, name, type, startDate, endDate)
该类型是另一个自定义对象 (Type(id, name, icon)
),它被链接为一对多。
我想添加另一个名为 EventDetail 的自定义对象,其中包含详细信息,但字段会因事件类型而异。
例如,如果我的活动是旅行类型,字段可以是指向目的地维基百科的网络链接、照片,但如果活动是工作实习,它们显然会有所不同。
什么样的结构可以处理这种情况?
如果它很重要,我将 java 用于 android,并使用名为 SugarORM
的 ORM 库
最终答案
我终于前往 ORM 库管理我的数据库。使用 Type 和 EventDetail 之间的一对一关系以及 Type 和 Event 之间的一对多关系,目前效果非常好。
你可以用几种不同的方式处理这个...
一个方法是为 EventDetail
创建一个包罗万象的 table,其中包含每个 type
需要的每个字段,并使用 type
来确定哪些字段你从那里读到 table.
另一种方法,如果您没有很多不同的类型,则可以为每种类型创建一个 table,根据该类型的需要构建,在您的查询中,您需要根据类型加入每个 table(可能使用 UNION [ALL]
,每个 type
一个查询 - 或创建视图)。
第三种可能更理想,具体取决于情况和用途,是从数据库中消除该级别的复杂性。将 "Event Details" 存储为 CLOB
或 BLOB
或 XMLTYPE
等...并使用 type
将数据反序列化为客户端的对象.
我有一个数据库,其中包含以下事件:
event(id, name, type, startDate, endDate)
该类型是另一个自定义对象 (Type(id, name, icon)
),它被链接为一对多。
我想添加另一个名为 EventDetail 的自定义对象,其中包含详细信息,但字段会因事件类型而异。
例如,如果我的活动是旅行类型,字段可以是指向目的地维基百科的网络链接、照片,但如果活动是工作实习,它们显然会有所不同。
什么样的结构可以处理这种情况?
如果它很重要,我将 java 用于 android,并使用名为 SugarORM
的 ORM 库最终答案
我终于前往 ORM 库管理我的数据库。使用 Type 和 EventDetail 之间的一对一关系以及 Type 和 Event 之间的一对多关系,目前效果非常好。
你可以用几种不同的方式处理这个...
一个方法是为 EventDetail
创建一个包罗万象的 table,其中包含每个 type
需要的每个字段,并使用 type
来确定哪些字段你从那里读到 table.
另一种方法,如果您没有很多不同的类型,则可以为每种类型创建一个 table,根据该类型的需要构建,在您的查询中,您需要根据类型加入每个 table(可能使用 UNION [ALL]
,每个 type
一个查询 - 或创建视图)。
第三种可能更理想,具体取决于情况和用途,是从数据库中消除该级别的复杂性。将 "Event Details" 存储为 CLOB
或 BLOB
或 XMLTYPE
等...并使用 type
将数据反序列化为客户端的对象.