最新的数据库热潮似乎以非关系数据库为中心。为什么?似乎适得其反。例如,以关系方式( Django + SQL中的示例代码)表示数据对我来说更有意义:
class Post(models.Model):
name = models.CharField()
created = models.DateTimeField(auto_now_create = True)
class Comment(models.Model):
text = models.TextField()
post = models.ForeignKey('Post')
c
我对数据库很陌生,我从未使用过任何RDBMS。但是,我了解了关系数据库的基本概念。至少我想我知道;-)
假设我有一个用户数据库,每个用户都有以下属性:
用户
id
名字
zip
城市
例如,在关系数据库中,我将把它建模在一个名为user的表中。
用户
id
名字
location_id
并有第二个表,名为location
位置
id
zip
城市
location_id是location表中一个条目的外键(引用)。如果我理解得对,优势就在这里,如果某个城市的邮政编码
当我持久化这个子类时会发生什么?当我查询数据库中的子类对象时,变量a和b是否可用?我如何持久化a和b?
public Superclass {
private int a;
private Obj b;
// ...
}
@Entity
public Subclass extends Superclass{
@id int x;
public Subclass(int a, Obj b, int x){
super(a, b);
}
}
假设我们有一个用户;一个用户可以有多个孩子。
现在,当我插入子对象时;我调用user.addChild(),以便更新位于JVM中的用户对象。虽然实际上用户的数据库记录没有任何变化,因为它是OneToMany。
当我检查SQL;以及insert into child时,另一个查询被触发:
update User set version=? where id=? and version=?
你知道为什么吗?以及如何解决这个问题
这只是一个非常普遍的数据库管理问题。假设我有一个人员列表,我想为该表中的每一行存储第二个列表。这是我的解决办法。
一个人可能拥有的物品表;
将这些项目组合在一起的人表;
解释;
John has an order of 6, which is 4 + 2, or a Cheeseburger and a Milkshake.
Mary has an order of 25, which is 16 + 8 + 1, or a Soda, Hotdog, and Fries
我想知道的是,这种类型的列表存储是否已经有了术语,与存储多个键相比,它的优点/缺点是什么。我还想知道是