我正在使用laravel 5.1和mongo db。我需要以形式创建国家,州和城市。我检查了mongo数据库中没有规范化,所以请指导我如何创建数据库表结构来填充国家,州和城市。请帮忙。感谢
答案 0 :(得分:2)
那么你仍然可以“引用”一个集合到另一个集合,你应该阅读更多关于modeling in mongoDB的内容,基本上模型的结构将根据你经常执行的操作以及你的用例而有所不同。
例如,如果你写的比你正在阅读的要多得多,那么分开的集合可能是一个很好的做法,如果你阅读的内容比你写的多,那么拥有嵌入对象的结构对你来说可能没问题。
对我来说,我创造了两者兼而有之,因为你可能有很多城市,所以最好有一个单独的收藏。 (但这又取决于你的使用案例)
此系列包含国家和州
{
_id: ObjectId<>,
countryName:"Spain",
countryCode:"es",
states[{
_id: ObjectId<>,
stateName:"Barcelona"
}]
}
然后另一个集合在方便时获取城市。
{
_id:ObjectId<>,
_stateId:ObjectId<>, //Reference to you stateId
cityName:"SomeCity or province"
}
这是一个简单的方法,取决于您的使用案例以及您将如何阅读您的数据,但在一个简单的场景中,当您选择一个国家/地区,然后选择一个州和最后一个城市时,这样做会很好。
答案 1 :(得分:0)
您可以使用系统创建的objectid添加引用。在mongodb中没有连接查询。如果需要,您所能做的就是应用程序级别连接。尝试根据数据需求设计您的馆藏。