我一直在学习了很多关于过去几个月去归一化数据,但我想知道,如果下面的扁平架构的世界是可能的。 我知道如何处理有关三方关系在火力地堡的双向关系,但什么。 让我解释...
我在我的数据库中,5项services
, providers
, serviceAtProvider
, reviews
和users
。 我希望能够增加providers
到services
,反之亦然。
我也想有是一个特定页面的provider
一个内部service
,以及为了有评论链接到提供者在那个特定的服务。 页面的URL可能看起来像这样( site.com/serviceId/providerId
)。 该评级是特有的providerId
该内部serviceId
-你不能评价serviceId
S或providerId
小号分开。
我不知道如何去建立这样一个复杂的关系。 我怎么会加入serviceId
和providerId
在serviceAtProvider
项目?
这是我到目前为止有:
"services": {
"service1": {
"name": "Hernia Repair",
"providers": {
"provider1": true,
"provider2": true
}
}
},
"providers": {
"provider1": { "name": "The Whittington Hospital" },
"provider2": { "name": "Homerton Hospital" }
},
"serviceAtProvider": {
"service1AtProvider1": { "rating": 4 },
"service1AtProvider2": { "rating": 3 }
},
"reviews": {
"service1AtProvider1": {
"review1": {
"body": "A review from user 1",
"user": "user1"
}
},
"service1AtProvider2": {
"review1": {
"body": "A review from user 2",
"user": "user2"
}
}
},
"users": {
"user1": { "name": "Ben Thomas" },
"user2": { "name": "Beatrix Potter" }
}
我不知道如何创建serviceAtProvider
加入,否则我将如何去访问service1.name
, provider1.name
, service1AtProvider1.rating
, reviews.service1AtProvider1
一个页面上。 谁能解释如何做到这一点?
此外,是否有我应该遵循的最佳做法?
任何帮助表示赞赏。 提前致谢!
UPDATE
{
"availableServices": {
"service1": { "name": "Hernia Repair" },
"service2": { "name": "Chemotherapy" }
},
"services": {
"provider": {
"name": "The Whittington Hospital",
"service": {
"service1": {
"rating": 4,
"reviewId1": true
},
"service2": {
"rating": 3,
"reviewId2": true
},
}
}
},
"reviews": {
"reviewId1": {
"review1": {
"rating": 4,
"body": "A review from user 1",
"user": "user1"
}
}
},
"users": {
"user1": { "name": "Raphael Essoo-Snowdon" },
"user2": { "name": "Sharlyne Slassi" }
}
}