标签: rdbms

如何设计电影数据库?

我试图让这个令人难以置信的东西,他们称之为数据库设计没有太大的成功,所以我将尝试通过一个例子说明我的问题.

我正在使用MySQL,这是我的问题:

假设我想创建一个数据库来保存我的DVD集合.我有以下要包含的信息:

  1. 片名
  2. 演员
  3. 运行时间
  4. 类型
  5. 描述
  6. 导向器

我想在这些之间建立关系,使其更有效但不知道如何.

这是我正在考虑的数据库设计:

电影表=> filmid,filmtitle,运行时间,描述

年表=>年

流派表=>流派

导演表=>导演

Actors Table => actor_name

但是,我将如何创建这些表之间的关系?

另外,我为Films Table创建了一个唯一的ID,主键自动递增,我是否需要为每个表创建一个唯一的ID?

最后,如果我要通过PHP表单将新电影更新到数据库中,我将如何插入所有这些数据(与关系和所有?)

感谢你能给予的任何帮助,基思

mysql rdbms database-design relationship

21
推荐指数
3
解决办法
6万
查看次数

带有field.types的RMySQL dbWriteTable

我有一个名为的数据框,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'在密钥规范中使用,没有密钥长度)

任何人都可以对此有所了解吗?

谢谢

mysql sql rdbms r rmysql

21
推荐指数
1
解决办法
2万
查看次数

为什么面向对象的数据库还没有成功?

这就是问题所在.只考虑一个原因,你认为为什么OODB失败或为什么现在许多系统仍然使用关系数据库.

database orm rdbms object-oriented-database

20
推荐指数
6
解决办法
2781
查看次数

为什么在CAP定理中没有RDBMS分区容忍以及为什么它可用?

关于RDBMS在CAP定理中是CA的两点我不明白:

1)它说RDBMS 不是 分区容忍但是RDBMS如何比MongoDB或Cassandra等其他技术更少分区容忍?是否存在RDBMS设置,我们放弃CA以使其成为AP或CP?

2)CAP如何可用?是通过主从设置吗?在主机死机时,从机接管写入?

我是DB架构和CAP定理的新手所以请耐心等待.

rdbms distributed-computing distributed-system nosql cap-theorem

20
推荐指数
3
解决办法
7107
查看次数

如何在数据库中存储具有动态数量的属性的数据

我有许多不同的对象,具有不同数量的属性.到目前为止,我已将数据保存在XML文件中,这些文件可轻松实现不断变化的属性数量.但我正在尝试将其移至数据库.

存储此数据的首选方法是什么?

到目前为止我已经确定了一些策略:

  • 在对象的表中有一个名为"attributes"的字段,并将数据序列化或json存储在那里.
  • 将数据存储在两个表(对象,属性)中,并使用第三个表来保存关系,使其成为真正的n:m关系.非常干净的解决方案,但可能非常昂贵,以获取整个对象及其所有属性
  • 识别所有对象共有的属性,并为对象的表创建这些属性.将其余属性作为序列化数据存储在另一个字段中.这比第一个策略有优势,使搜索更容易.

有任何想法吗?

mysql database rdbms

19
推荐指数
2
解决办法
2万
查看次数

如何在SQL查询中获取结果集的字节大小?

是否有可能在MySQL中获取sql查询结果的字节大小?

例如:

select * from sometable;
Run Code Online (Sandbox Code Playgroud)

这会返回10000行.我不希望行,但结果集的大小,以字节为单位.可能吗?

mysql sql rdbms

19
推荐指数
4
解决办法
2万
查看次数

面向对象的数据库对象关系数据库

我想知道面向对象数据建模与对象关系数据建模有何不同?

它是否类似于面向对象和关系数据建模的优点,以实现对象关系数据建模?

干杯

rdbms database-design datamodel object-oriented-database

18
推荐指数
1
解决办法
1万
查看次数

更新SOLR索引的特定字段

我想使用solr搜索文章

我有3张桌子:

  1. 组(id,组名)
  2. ArticleBase(id,groupId,其他一些字段)
  3. 文章(id,articleBaseId,title,date,...)

在solr schema.xml文件中我只是定义与ArticleBase表混合的所有文章字段(在solr上使用一个索引),如下所示:(id,articleBaseId,groupId,...)

问题:管理员想要更改组(ArticleBase),因此我必须更新(或替换)solr中的所有索引文章.对 ?
我只能在solr索引中更新groupId吗?

有解决方案吗?

注意:文章表包含超过2亿篇文章,我只使用solr作为索引(不存储除文章ID之外的任何字段数据)

lucene rdbms solr

18
推荐指数
2
解决办法
2万
查看次数

随着最近的NoSQL数据库的出现,我为什么要使用SQL数据库呢?

在开发软件大约5年后,我花了大约20%,也许高达40%的时间只是让RDBMS能够保存和检索复杂的对象图.很多时候,这导致了不太理想的编码解决方案,以便从数据库端更容易做到.在学习NHibernate和作为其一部分的会话管理模式花费了大量时间之后,这最终结束了.使用NHibernate,我终于避免了大部分100%浪费的时间来编写CRUD第1000次,并使用我的域模型中的数据库的前向生成.

然而,所有这些工作仍然导致一个有缺陷的模型,我的数据库只是SQL模仿我的实际对象的最佳尝试.对于文档数据库,不再是这种情况,因为对象变为文档本身而不是仅通过表和列模拟对象.

在这一点上,我真的开始质疑为什么我会再次需要SQL?

有什么可以真正做到实质上与SQL比文档数据库更好?

我知道这有点像苹果到橙子的比较,特别是当你考虑到具有广泛不同的特征集的各种类型的NoSQL数据库时,但为了这个论点,它基于NoSQL数据库的概念本身可以正确地查询对象而不是关键值存储的限制.还要忽略报告方面,因为通常应该在OLAP数据库中处理,除非您的答案包含不使用OLAP数据库的特定原因.

sql rdbms nosql

18
推荐指数
4
解决办法
1686
查看次数

NoSQL/RDBMS与参照完整性混合(删除级联)?

是否有一个数据库可以提供参照完整性的好处,并且能够使用SQL类型语言进行查询,还可以根据数据属性以及它们之间的关系来松散地定义实体吗?

例如,采用RBAC类型模型,您可以在其中拥有权限,用户,用户组和角色.复杂/灵活的模型可以具有以下规则:

  • 角色可以拥有一个或多个权限,权限可以属于一个或多个角色
  • 用户可以拥有一个或多个权限,权限可以属于一个或多个用户
  • 用户组可以拥有一个或多个权限,权限可以属于一个或多个用户组
  • 用户可以拥有一个或多个角色,角色可以属于一个或多个用户
  • 用户组可以具有一个或多个角色,角色可以属于一个或多个用户组
  • 角色可以具有一个或多个角色,角色可以属于一个或多个角色

在RDBMS中对上述模型进行建模将涉及创建大量交集表.理想情况下,我想在数据库中定义的只是实体本身(用户,角色等)以及一些强制属性.其他所有内容都是动态的(即不需要DDL),例如,我可以创建一个具有未预定义的新属性的用户.我还可以在尚未预定义的实体之间创建关系,尽管数据库将像普通RDBMS一样处理引用完整性.

通过创建一个存储实体的表和另一个存储关系等的表,可以在某种程度上在RDBMS中实现上述目的,但这会过度复杂化执行简单查询所需的SQL,并且还可能具有性能影响.

database rdbms referential-integrity nosql object-oriented-database

18
推荐指数
3
解决办法
4373
查看次数