我在使用mongodb后才开始使用SQL。因此,我无法将一些实践映射到SQL世界。首先,我不确定mongodb中的嵌入式文档是如何映射到SQL的。
例如,在mongodb中,如果我想为拥有汽车的人建模,我会有一组看起来像
的文件。{
firstName: 'John',
lastName: 'Smith',
car: {
color: 'Red',
year: 2001,
...
}
}
如何在SQL数据库中创建类似的关系?我意识到我可以对car_color
和car_year
之类的命名空间进行命名,但与在文档结构中显示这种关系相比,这似乎在概念上无效。
答案 0 :(得分:0)
按照上面的示例,您可以将这些表格分为两个表格(关系),例如Person
和Car
,其中包含所示的字段。每个表也将具有主键(其可以是自然的,例如汽车注册号,或者像自动增量整数那样是人工的)。
要关联这两个实体,您可以({1)使用Person
中的主键值Car
中的外键字段,或者(2)中的外键字段Car
表,其中包含Person
中主键值的值。我更愿意(2)因为它允许一个人拥有多辆汽车。
当然,这是一种简化 - 人们可能拥有多辆汽车和一辆汽车可能由多人拥有。这通常是通过将外键保持在汽车和人员表之外并创建第三个表来建模的,该表只存储了一对与汽车相关的外键。
脚注:大多数人都是从SQL到MongoDB,而不是相反!祝你好运!