Couchbase NoSQL文档模式
我不熟悉NoSQL和基于文档的模式,我正在开发一个基于健身房的培训应用程序。我正试图找出实现以下目标的最佳方法: 有一系列的“基本活动”,每一个都有变化。基本活动的下方为#1,变量为#2至#8 由于每个变体都被认为是一种高级培训技术,因此我将不提供单独的视频显示技术,也不需要任何不同的基于文本的教学信息,因此,由于大量冗余数据,这些变体在其自身的活动文档中是没有意义的。下面可以看到提议的活动文档的JSONCouchbase NoSQL文档模式,couchbase,nosql,Couchbase,Nosql,我不熟悉NoSQL和基于文档的模式,我正在开发一个基于健身房的培训应用程序。我正试图找出实现以下目标的最佳方法: 有一系列的“基本活动”,每一个都有变化。基本活动的下方为#1,变量为#2至#8 由于每个变体都被认为是一种高级培训技术,因此我将不提供单独的视频显示技术,也不需要任何不同的基于文本的教学信息,因此,由于大量冗余数据,这些变体在其自身的活动文档中是没有意义的。下面可以看到提议的活动文档的JSON { "id": "a::1", "doctype": "activity",
{
"id": "a::1",
"doctype": "activity",
"lay_name": "15º Decline Bench Press, Barbell, Close Grip",
"coach_name": "Bench Press, 15º Decline, Barbell, Close Grip",
"type": "resistance",
"author": "",
"exp_level": "intermediate",
"contraindicated": [
"Shoulder Impingement"
],
"technique_videos": {
"correct": "/folder/folder/file1.mp4",
"incorrect": "/folder/folder/file2.mp4"
},
"equipment": [
"Barbell",
"Decline Bench"
],
"tags": [
"Free Weight",
"Mass Builder",
"Indoor"
],
"activity_variation": [
{
"variation": "thick_barbell",
"lay_name": "15º Decline Bench Press, Thick Barbell, Close Grip",
"coach_name": "Bench Press, 15º Decline, Thick Barbell, Close Grip"
},
{
"variation": "with_chains",
"lay_name": "15º Decline Bench Press, Barbell, Close Grip, With Chains",
"coach_name": "Bench Press, 15º Decline, Barbell, Close Grip, With Chains"
},
{
"variation": "thick_barbell_with_chains",
"lay_name": "15º Decline Bench Press, Thick Barbell, Close Grip, With Chains",
"coach_name": "Bench Press, 15º Decline, Thick Barbell, Close Grip, With Chains"
},
{
"variation": "with_bands_assisting",
"lay_name": "15º Decline Bench Press, Barbell, Close Grip, With Bands Assisting",
"coach_name": "Bench Press, 15º Decline, Barbell, Close Grip, With Bands Assisting"
},
{
"variation": "thick_barbell_with_bands_assisting",
"lay_name": "15º Decline Bench Press, Thick Barbell, Close Grip, With Bands Assisting",
"coach_name": "Bench Press, 15º Decline, Thick Barbell, Close Grip, With Bands Assisting"
},
{
"variation": "with_bands_resisting",
"lay_name": "15º Decline Bench Press, Barbell, Close Grip, With Bands Resisting",
"coach_name": "Bench Press, 15º Decline, Barbell, Close Grip, With Bands Resisting"
},
{
"variation": "thick_barbell_with_bands_resisting",
"lay_name": "15º Decline Bench Press, Thick Barbell, Close Grip, With Bands Resisting",
"coach_name": "Bench Press, 15º Decline, Thick Barbell, Close Grip, With Bands Resisting"
}
],
"description": "Excellent mass builder that focuses on the lower part of the pec.",
"technique_description": [
"1. bla bla",
"2. Bla bla",
"3. Bla bla",
"4. Bla bla"
],
"prime_mover": "Pectoralis Major",
"focus": "Pectoralis Major - Sternal Head"
}
首先,需要查询这些活动(或练习,如果您愿意),然后作为单独的活动呈现,例如:
其次,他们还需要与(健身计划和)个人锻炼(由活动组成)相关联,并且用户需要记录他们在某一天、某一锻炼、某一特定锻炼的举重(重复次数、组数、体重)。因此,我试图找出设计模式的最佳方法,以适应这种情况。我还认为,用户应该能够在设置中指定他们可以访问哪些设备,如果他们没有东西,例如链条,那么当他们查询练习列表时,不会显示相关的练习
问题:
{
"id": "a::1",
"doctype": "activity",
"lay_name": "15º Decline Bench Press, Barbell, Close Grip",
"coach_name": "Bench Press, 15º Decline, Barbell, Close Grip",
"type": "resistance",
"author": "",
"exp_level": "intermediate",
"contraindicated": [
"Shoulder Impingement"
],
"technique_videos": {
"correct": "/folder/folder/file1.mp4",
"incorrect": "/folder/folder/file2.mp4"
},
"equipment": [
"Barbell",
"Decline Bench"
],
"tags": [
"Free Weight",
"Mass Builder",
"Indoor"
],
"activity_variation": [
{
"variation": "thick_barbell",
"lay_name": "15º Decline Bench Press, Thick Barbell, Close Grip",
"coach_name": "Bench Press, 15º Decline, Thick Barbell, Close Grip"
},
{
"variation": "with_chains",
"lay_name": "15º Decline Bench Press, Barbell, Close Grip, With Chains",
"coach_name": "Bench Press, 15º Decline, Barbell, Close Grip, With Chains"
},
{
"variation": "thick_barbell_with_chains",
"lay_name": "15º Decline Bench Press, Thick Barbell, Close Grip, With Chains",
"coach_name": "Bench Press, 15º Decline, Thick Barbell, Close Grip, With Chains"
},
{
"variation": "with_bands_assisting",
"lay_name": "15º Decline Bench Press, Barbell, Close Grip, With Bands Assisting",
"coach_name": "Bench Press, 15º Decline, Barbell, Close Grip, With Bands Assisting"
},
{
"variation": "thick_barbell_with_bands_assisting",
"lay_name": "15º Decline Bench Press, Thick Barbell, Close Grip, With Bands Assisting",
"coach_name": "Bench Press, 15º Decline, Thick Barbell, Close Grip, With Bands Assisting"
},
{
"variation": "with_bands_resisting",
"lay_name": "15º Decline Bench Press, Barbell, Close Grip, With Bands Resisting",
"coach_name": "Bench Press, 15º Decline, Barbell, Close Grip, With Bands Resisting"
},
{
"variation": "thick_barbell_with_bands_resisting",
"lay_name": "15º Decline Bench Press, Thick Barbell, Close Grip, With Bands Resisting",
"coach_name": "Bench Press, 15º Decline, Thick Barbell, Close Grip, With Bands Resisting"
}
],
"description": "Excellent mass builder that focuses on the lower part of the pec.",
"technique_description": [
"1. bla bla",
"2. Bla bla",
"3. Bla bla",
"4. Bla bla"
],
"prime_mover": "Pectoralis Major",
"focus": "Pectoralis Major - Sternal Head"
}