我试图让这个令人难以置信的东西,他们称之为数据库设计没有太大的成功,所以我将尝试通过一个例子说明我的问题.
我正在使用MySQL,这是我的问题:
假设我想创建一个数据库来保存我的DVD集合.我有以下要包含的信息:
我想在这些之间建立关系,使其更有效但不知道如何.
这是我正在考虑的数据库设计:
电影表=> filmid,filmtitle,运行时间,描述
年表=>年
流派表=>流派
导演表=>导演
Actors Table => actor_name
但是,我将如何创建这些表之间的关系?
另外,我为Films Table创建了一个唯一的ID,主键自动递增,我是否需要为每个表创建一个唯一的ID?
最后,如果我要通过PHP表单将新电影更新到数据库中,我将如何插入所有这些数据(与关系和所有?)
感谢你能给予的任何帮助,基思
我有一个名为的数据框,df如下所示:
dte, val
2012-01-01, 23.2323
2012-01-02, 34.343
Run Code Online (Sandbox Code Playgroud)
列上的类型是日期和数字.我想使用已经打开的连接将其写入MySQL数据库.连接工作正常,因为我能够查询db罚款.我尝试运行以下内容:
dbWriteTable(con, name="table_name", value=df, field.types=list("date", "double(20,10)"))
Run Code Online (Sandbox Code Playgroud)
这会生成错误:
函数错误(classes,fdef,mtable):无法找到函数"make.db.names"的继承方法,签名为"MySQLConnection","NULL"
如果我没有指定field.types,并运行:
dbWriteTable(con, name="table_name", value=df)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
mysqlExecStatement(conn,statement,...)出错:RS-DBI驱动程序:(无法运行语句:BLOB/TEXT列'dte'在密钥规范中使用,没有密钥长度)
任何人都可以对此有所了解吗?
谢谢
这就是问题所在.只考虑一个原因,你认为为什么OODB失败或为什么现在许多系统仍然使用关系数据库.
关于RDBMS在CAP定理中是CA的两点我不明白:
1)它说RDBMS 不是 分区容忍但是RDBMS如何比MongoDB或Cassandra等其他技术更少分区容忍?是否存在RDBMS设置,我们放弃CA以使其成为AP或CP?
2)CAP如何可用?是通过主从设置吗?在主机死机时,从机接管写入?
我是DB架构和CAP定理的新手所以请耐心等待.
rdbms distributed-computing distributed-system nosql cap-theorem
我有许多不同的对象,具有不同数量的属性.到目前为止,我已将数据保存在XML文件中,这些文件可轻松实现不断变化的属性数量.但我正在尝试将其移至数据库.
存储此数据的首选方法是什么?
到目前为止我已经确定了一些策略:
有任何想法吗?
是否有可能在MySQL中获取sql查询结果的字节大小?
例如:
select * from sometable;
Run Code Online (Sandbox Code Playgroud)
这会返回10000行.我不希望行,但结果集的大小,以字节为单位.可能吗?
我想知道面向对象数据建模与对象关系数据建模有何不同?
它是否类似于面向对象和关系数据建模的优点,以实现对象关系数据建模?
干杯
我想使用solr搜索文章
我有3张桌子:
在solr schema.xml文件中我只是定义与ArticleBase表混合的所有文章字段(在solr上使用一个索引),如下所示:(id,articleBaseId,groupId,...)
问题:管理员想要更改组(ArticleBase),因此我必须更新(或替换)solr中的所有索引文章.对 ?
我只能在solr索引中更新groupId吗?
有解决方案吗?
注意:文章表包含超过2亿篇文章,我只使用solr作为索引(不存储除文章ID之外的任何字段数据)
在开发软件大约5年后,我花了大约20%,也许高达40%的时间只是让RDBMS能够保存和检索复杂的对象图.很多时候,这导致了不太理想的编码解决方案,以便从数据库端更容易做到.在学习NHibernate和作为其一部分的会话管理模式花费了大量时间之后,这最终结束了.使用NHibernate,我终于避免了大部分100%浪费的时间来编写CRUD第1000次,并使用我的域模型中的数据库的前向生成.
然而,所有这些工作仍然导致一个有缺陷的模型,我的数据库只是SQL模仿我的实际对象的最佳尝试.对于文档数据库,不再是这种情况,因为对象变为文档本身而不是仅通过表和列模拟对象.
在这一点上,我真的开始质疑为什么我会再次需要SQL?
有什么可以真正做到实质上与SQL比文档数据库更好?
我知道这有点像苹果到橙子的比较,特别是当你考虑到具有广泛不同的特征集的各种类型的NoSQL数据库时,但为了这个论点,它基于NoSQL数据库的概念本身可以正确地查询对象而不是关键值存储的限制.还要忽略报告方面,因为通常应该在OLAP数据库中处理,除非您的答案包含不使用OLAP数据库的特定原因.
是否有一个数据库可以提供参照完整性的好处,并且能够使用SQL类型语言进行查询,还可以根据数据属性以及它们之间的关系来松散地定义实体吗?
例如,采用RBAC类型模型,您可以在其中拥有权限,用户,用户组和角色.复杂/灵活的模型可以具有以下规则:
在RDBMS中对上述模型进行建模将涉及创建大量交集表.理想情况下,我想在数据库中定义的只是实体本身(用户,角色等)以及一些强制属性.其他所有内容都是动态的(即不需要DDL),例如,我可以创建一个具有未预定义的新属性的用户.我还可以在尚未预定义的实体之间创建关系,尽管数据库将像普通RDBMS一样处理引用完整性.
通过创建一个存储实体的表和另一个存储关系等的表,可以在某种程度上在RDBMS中实现上述目的,但这会过度复杂化执行简单查询所需的SQL,并且还可能具有性能影响.
database rdbms referential-integrity nosql object-oriented-database