【发布时间】:2014-10-25 03:39:18
【问题描述】:
我正在寻找一种在我的数据库(可能是 mysql)中有一个变体列的方法,我知道这是不可能的,但我需要的是一种模拟这种行为的方法。
我有一对简单的表格,例如:
#task table
(
id int ...,
date timestamp,
owner int
)
#info table
(
id int ...,
relative int, #points to Task
name varchar,
value VARIANT
)
基本上,我需要将可变数量的信息字段与每个任务相关联,并且每个 information.value 将具有不同的类型(字符串、日期时间、布尔值和整数)。
我计划为每种类型创建四列,而不是单个 VARIANT,并填充正确的列。但是那个表会增长很多(600Mb/月),我认为这将是一个巨大的空间浪费。
有人知道更好的方法来实现这一点吗?
我不知道这是否会让情况变得更糟或更好,但我会在 django 中做到这一点!
【问题讨论】:
-
每个任务的信息字段数量可变?听起来像一个简单的多对多关系。如果你不知道那是什么,我听说过关于《凡人数据库设计》这本书的好消息。
-
嗯,不,这是一对多的关系。如果您查看我的问题,您会发现我有可变数量的“信息”行指向“任务”中的单行。这里的交易是有多种数据类型适合单行字段。