我目前在我的数据库中有多个表,它们包含相同的"基本字段",如:
name character varying(100),
description text,
url character varying(255)Run Code Online (Sandbox Code Playgroud)
但我有一个基本的表,这是例子的多个专业化tv_series有田season,episode,airing,而movies表中有release_date,budget等等.
现在起初这不是问题,但我想创建第二个表,linkgroups使用这些专用表的外键调用.这意味着我会以某种方式将其自身标准化.
我听说过解决这个问题的一种方法是使用key-value-pair-table 对其进行规范化,但我不喜欢这个想法,因为它是一种"数据库中的数据库"方案,我没有办法要求某些键/字段也不需要特殊类型,以后获取和排序数据将是一个巨大的痛苦.
所以我现在正在寻找一种方法来在多个表之间"共享"主键,甚至更好:通过使用通用表和多个专用表来规范化它.
如果我有一个叫动物的类,狗和鱼是子类.动物具有称为"颜色"的属性.狗具有称为"尾长"的属性,并且鱼没有此属性.鱼具有称为"重量"的属性,狗没有这个属性.
所以,我想设计一个数据库来存储这些信息.我该怎么办?这是一些想法:
想法1:制作动物表,并且表格有类型,以找到什么样的动物,如果是狗,只需从狗桌得到结果.
Animal:color:String类型:int
类型:狗:0鱼:1
狗:TailLength:int
鱼:重量:int
想法2:只在数据库中存储Dog表和Fish表,删除动物表.
狗:颜色:字符串TailLength:int
鱼:颜色:字符串重量:int
我有不同的3种类型的用户,每种类型的用户都可以拥有列和与其他类型没有的表的关系,但所有用户都有登录(唯一)和密码,
你会怎么做:
是否有可用的C ++开源面向对象数据库?
我已经看过像面向对象的关系映射(ORM)库,就像在这里发布的那些库:https : //stackoverflow.com/questions/74141/good-orm-for-c-solutions
这些也很有趣: 关系数据库中类似面向对象的结构 http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#C.2B.2B
到目前为止,我的经历非常痛苦。解决方案似乎还不成熟,我什至很难编译其中的一些,而且文档和支持可能很少。
我想在某种程度上我想避免学习SQL(我不是数据库开发人员)。另一方面,我的直觉是ORM是一种体系结构的“解决方法”,因为它们在数据库系统之上创建了一个固有地不支持对象的层。
我理想的数据库库将允许以下操作:
我曾在具有这样的自定义数据库和api的嵌入式系统上工作。
我快要创建自己的开源文件了。
只是想知道我是否可以使用现成的东西。
我看到了这个:http : //en.wikipedia.org/wiki/Comparison_of_object_database_management_systems
并试图找出这可能工作:
http://www.fastdb.org/fastdb.html
提前致谢。