之前已经讨论过这个问题,但我还没有遇到明确的答案,它只是粗略地描述为火和水,并留在那里(来自我的研究)。与非关系(MySQL和MongoDB)的混合关系
关系和无关系数据库是非常不同的,但它们都拉数据,对于我的项目,我打算使用无关系数据库,但是这将安装在许多地方,有些只能访问MySQL(后来移动)。
那么有可能迫使MySQL进入一种无关系模式?我已经使用了一种模仿它的模式,但它仍然保留着迄今为止我无法克服的关系数据库方面(过分依赖于ID等等,导致语法/数据结构混乱)。
那么有没有一个魔术图书馆会做到这一点?
这里是我的数据库架构的一个大概的轮廓:
1台是“元”及其包含的ID,类型和日期等一起,共同搜索是普遍的基本领域。
1个包含“数据”的表,每个“列”有多行。它不能通过一个连接来完成,所以它的两个查询来获取数据。
CREATE TABLE `meta` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`type` varchar(255) NOT NULL,
`state` tinyint(3) NOT NULL DEFAULT '0',
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
CREATE TABLE `data` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`meta_id` int(11) unsigned NOT NULL DEFAULT '0',
`index` varchar(255) NOT NULL,
`value` longtext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
正如你可以看到不容易搜索,除非它通过ID /日期什么的,还需要PHP占用了大量松弛的顺序和这样的。不是我真正担心的,而是要做一个真正的搜索,它需要转储整个数据库,并通过它咀嚼.....
什么样的MySQL模式(或概念)可以最好地复制无关系模型(并仍然合理地处理搜索)?
如果存在这样一个魔术开关,那么除了MySQL – 2014-10-07 21:54:22
之外不需要任何数据库,如果您愿意,可以使用mysql作为哑数据存储系统。没有什么东西需要你拥有多个表,外键等......如果你愿意,你可以有一个单一的字段/单个表/单个模式,将整个系统存储为一个不透明的blob。但是接下来的问题就变成了“为什么还要用数据库开始呢?” – 2014-10-07 21:55:53
它或多或少的向后兼容性。我使用的数据是非常动态的,它几乎不可能正确使用mysql。我真的被困在一块石头和一个坚硬的地方之间......这个......大声笑。我打算缓存它,但我也明白,它的性能可能也不足。 – 2014-10-07 21:58:16