何时将数据库设计描述为过度标准化?这种特征是绝对的吗?或者它取决于它在应用程序中的使用方式?谢谢.
我读的关于NoSQL的越多,它就越像听起来像是一个面向列的数据库.
NoSQL(例如CouchDB,Cassandra,MongoDB)和面向列的数据库(例如Vertica,MonetDB)之间有什么区别?
关联表的正确名称或最常用名称是什么?到目前为止,我听说过Lookup,关联,解析,映射和联结表?
先感谢您;-)
我知道这种情况违背了关系数据库的原则,但让我来描述一下情况.
我有一个页面,用户将放置一些项目.
________________
| -Item1 |
| -Item2 |
| -Item3 |
| -Item4 |
|________________|
Run Code Online (Sandbox Code Playgroud)
这些项目必须保持用户给出的顺序.然而,用户可以将该顺序改变任意次数.
________________
| -Item1 |
| -Item4 |
| -Item2 |
| -Item3 |
|________________|
Run Code Online (Sandbox Code Playgroud)
方法1
我最初的想法是给项目一个索引来代表列表中的位置
Page Item
----------- ---------------
FK | pid FK | pid
| name PK | iid
| index
| content
Run Code Online (Sandbox Code Playgroud)
使用此解决方案,您可以选择项目where pid = Page.pid,order by index方便.但是,每次更改订单时,您必须在另一个项目(最佳案例)和所有其他项目(最差情况)之间进行任何更改.
方法2
我还考虑制作一个"链表",如数据结构,其中每个项指向列表中的下一个项.
Page Item
----------- ---------------
FK | pid FK | pid
| name PK | iid
| …Run Code Online (Sandbox Code Playgroud) 使用NoSQL数据库而不是ORM包装的rdbms会有哪些项目受益?
例子:
可以在一个表中引用两个外键引用其他表的一个主键吗?
EmployeeID是employee表中的主键,在时间表表中两次显示为外键.
很少有管理员用户代表其他员工填写时间表.
在时间表表格字段中,"TimsheetFor"将拥有该项目的员工ID,并且该字段为"EnteredBy"或"FilledBy"的人员将拥有填写此时间表的人员.
以下哪个选项是正确的?
注意:表格仅显示与此问题相关的字段.

如何根据游标,过程和函数停止思考每个查询并开始使用SQL应该是什么?我们是否只是通过实践过渡到思考SQL,或者学习基于集合的查询语言有什么魔力吗?你做了什么过渡?
我所研究的大多数项目都需要数据库模式中的多对多关系.例如,您可能具有"用户和组"的概念,并且数据库可能包含表User,表Group和用于将两者相关联的表UserGroup.
我对该示例中UserGroup表的概念名称感兴趣.
我已经习惯于把它们称为"摇摆桌",因为这就是我学习它的方式,但我还没有听到其他人在一段时间内使用这个术语.
相反,我已经听过以下所有内容(包括一些新内容,感谢大家!):
这种表是否有官方名称,有来源支持其官方名称?
据我所知,Hadoop是一个分布式存储系统.但是我真正得到的是,我们可以用Hadoop替换普通的RDBMS(MySQL,Postgresql,Oracle)吗?或者Hadoop只是另一种类型的文件系统,我们可以在其上运行RDBMS吗?
另外,Django可以与Hadoop集成吗?通常,Web框架(ASP.NET,PHP,Java(JSP,JSF等))如何与Hadoop集成?
我对Hadoop与RDBMS有点混淆,我将不胜感激任何解释.(对不起,我多次阅读文档,但可能由于我缺乏英语知识,我发现文档在大多数时候都有点混乱)