乐谱库后端模板
目录分数、跟踪器乐器,并记录复印日志
一个可生产的 乐谱库后端 在 Back4app,为需要分数目录、乐器跟踪、作曲家标签和复印日志历史的经理和协调员所使用。包括 ER 图、数据字典、JSON 架构、API 游乐场,以及一个 AI 代理 提示,用于快速启动。
关键要点
本模板为您提供了一个音乐评分库后端,具有评分目录、乐器跟踪、作曲家标签和复制日志,以便您的员工可以从一个共享的真实来源工作。
- 评分目录结构 — 按标题、作曲家、乐器和归档状态组织每个评分。
- 乐器跟踪 — 按乐器过滤和分组评分条目,以便乐团可以快速找到正确的部分。
- 作曲家标记 — 将ComposerTag值附加到每个评分,用于曲目计划和节目说明。
- 复制日志历史 — 为结账、退货和货架移动保留 CopyLog 记录。
- 跨平台库后端 — 通过相同的 REST 和 GraphQL API 提供网络和移动目录工具,用于分数和复制日志。
什么是音乐分数库模板?
没有一个严格的音乐分数库数据模型,“可用”变成了猜测——而当合同依赖于准确性时,猜测是昂贵的。客户在你承诺的 ETA 中感受到这一点。在 Back4app 上构建 Score、ComposerTag、Instrumentation 和 CopyLog,将音乐分数库操作转化为可测量的数据,而不是分散在工具上的部落知识。该架构涵盖用户(用户名、电子邮件、密码)、分数(标题、作曲家、编配、通话号码)、ComposerTag(名称、分数、备注)、Instrumentation(乐队类型、所需乐器、难度)和 CopyLog(分数、操作、复制状态、时间戳),并内置身份验证和目录工作流。连接你的前端,并更快地推出一个可用的音乐分数库。
最佳适用:
乐谱库模板概述
当人员变动而数据模型无法灵活适应新的 SKU、站点或政策时,季节性波动对音乐乐谱库的影响最大。
首先审查 Score、ComposerTag 和 Instrumentation,然后打开堆栈卡以查看特定于 SDK 的注释和集成模式。
核心音乐乐谱库功能
该中心中的每个技术卡都使用相同的乐谱库架构,包括乐谱、ComposerTag、编曲和 CopyLog。
分数目录管理
分数存储标题、作曲家、编号、编制和档案状态。
编制跟踪
编制捕获每个分数的合奏类型、所需乐器和难度。
作曲家标签
ComposerTag 将名称、乐谱和注释链接到曲目记录。
复制日志历史
CopyLog 跟踪操作、复制状态、时间戳和乐谱指针。
为什么使用Back4app构建您的乐谱库后端?
Back4app为您的乐谱库提供所需的基本构件:结构化的目录记录、标记的作曲家、复制历史以及与日常图书馆工作相匹配的字段级控制。
- •乐谱和复制管理: Score类和CopyLog类将标题、版本、操作和复制状态链接在一个地方。
- •关注乐器的搜索: 乐器字段,如ensembleType和partsNeeded,让员工可以根据力量而不是仅仅根据标题来排序曲目。
- •以标签驱动的曲目规划: ComposerTag名称值让按作曲家、风格或节目集分组作品变得简单,而无需扁平化目录。
为所有客户端运行一个用于乐谱库存、复制历史和作曲家标记的后端。
核心优势
一个能够缩短手动查找时间并保持复制历史可见的乐谱库后端。
更快的分数查找
通过标题、作曲家、调用编号或档案状态查询分数类,而不是扫描电子表格。
更清晰的乐器规划
使用乐器字段,如合奏类型和所需部分,将曲目与可用演奏者匹配。
基于标签的目录排序
作曲者标签名称值使演出、考试和图书馆审查的曲目列表更易于排序。
审计友好的副本追踪
副本日志动作和时间戳字段保留每个分数副本的可读记录。
跨设备共享目录
Web 和移动客户端通过一个 Back4app API 读取相同的分数和副本日志数据。
人工智能辅助设置
在一个结构化的提示中生成后端框架和库工作流。
准备好启动您的音乐曲谱库应用了吗?
让 Back4app 人工智能助手搭建您的曲谱库后端,并从一个提示中生成曲谱、配器、作曲家标签和复制日志工作流。
免费开始 — 每月 50 次人工智能助手提示,无需信用卡
技术栈
此音乐乐谱库后端模板中包含的一切。
ER 图
乐谱库后台架构的实体关系模型。
涵盖用户、乐谱、作曲标签、乐器和复制日志的架构。
查看图表源
erDiagram
LibraryStaff ||--o{ CopyLog : "staff"
Composer ||--o{ Score : "composer"
Composer ||--o{ ComposerTag : "composer"
Score ||--o{ Instrumentation : "score"
Score ||--o{ ScoreCopy : "score"
ScoreCopy ||--o{ CopyLog : "copy"
LibraryStaff {
String objectId PK
String username
String email
String password
String role
Date createdAt
Date updatedAt
}
Composer {
String objectId PK
String displayName
Number birthYear
String nationality
String catalogNotes
Date createdAt
Date updatedAt
}
Score {
String objectId PK
String title
String composerId FK
String edition
String genre
String scoreFileUrl
Boolean isCheckedOut
Date createdAt
Date updatedAt
}
Instrumentation {
String objectId PK
String scoreId FK
String ensembleType
Array instrumentList
Number partsCount
String difficulty
Date createdAt
Date updatedAt
}
ScoreCopy {
String objectId PK
String scoreId FK
String copyNumber
String condition
String location
String status
Date createdAt
Date updatedAt
}
CopyLog {
String objectId PK
String copyId FK
String staffId FK
String action
Date actionAt
String notes
Date createdAt
Date updatedAt
}
ComposerTag {
String objectId PK
String composerId FK
String tagName
String tagSource
Date createdAt
Date updatedAt
}
集成流程
登录、分数浏览、仪表检视、作曲家标签和复制日志记录的典型运行流程。
查看图表源
sequenceDiagram
participant Staff as Library Staff
participant App as Music Score Library App
participant Back4app as Back4app Cloud
Staff->>App: Sign in
App->>Back4app: POST /login
Back4app-->>App: Session token
Staff->>App: Open score catalog
App->>Back4app: GET /classes/Score?include=composer
Back4app-->>App: Score list with Composer pointers
Staff->>App: Review instrumentation
App->>Back4app: GET /classes/Instrumentation?include=score
Back4app-->>App: Instrumentation rows and part counts
Staff->>App: Register a copy checkout
App->>Back4app: POST /classes/CopyLog
Back4app-->>App: CopyLog objectId
App->>Back4app: Subscribe to live copy updates
Back4app-->>App: Copy status changes and new logs数据字典
音乐分数库模式中每个类的完整字段级参考。
| 字段 | 类型 | 描述 | 必填 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自动 |
| username | String | Staff login name | |
| String | Staff email address | ||
| password | String | Hashed password (write-only) | |
| role | String | Staff role in the music score library (e.g. manager, coordinator, assistant) | |
| createdAt | Date | Auto-generated creation timestamp | 自动 |
| updatedAt | Date | Auto-generated last-update timestamp | 自动 |
7 字段在 LibraryStaff 中
安全性和权限
ACL 和 CLP 设置如何保护分数、标签、仪器详情和复制日志。
用户拥有的目录更改
只有授权员工可以创建、更新或删除分数记录和相关的复制日志事件。
复制日志完整性
使用 Cloud Code 检查以确保只有有效的操作(如结账、退货或移架)被接受用于复制日志。
范围阅读访问
在需要时向合适的角色暴露成绩元数据,同时限制敏感的内部备注或复制历史。
模式(JSON)
原始 JSON 模式定义准备好复制到 Back4app 或用作实现参考。
{
"classes": [
{
"className": "LibraryStaff",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"username": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": true
},
"password": {
"type": "String",
"required": true
},
"role": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Composer",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"displayName": {
"type": "String",
"required": true
},
"birthYear": {
"type": "Number",
"required": false
},
"nationality": {
"type": "String",
"required": false
},
"catalogNotes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Score",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"title": {
"type": "String",
"required": true
},
"composer": {
"type": "Pointer",
"required": true,
"targetClass": "Composer"
},
"edition": {
"type": "String",
"required": false
},
"genre": {
"type": "String",
"required": false
},
"scoreFileUrl": {
"type": "String",
"required": true
},
"isCheckedOut": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Instrumentation",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"score": {
"type": "Pointer",
"required": true,
"targetClass": "Score"
},
"ensembleType": {
"type": "String",
"required": true
},
"instrumentList": {
"type": "Array",
"required": true,
"arrayType": "String"
},
"partsCount": {
"type": "Number",
"required": true
},
"difficulty": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "ScoreCopy",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"score": {
"type": "Pointer",
"required": true,
"targetClass": "Score"
},
"copyNumber": {
"type": "String",
"required": true
},
"condition": {
"type": "String",
"required": true
},
"location": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "CopyLog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"copy": {
"type": "Pointer",
"required": true,
"targetClass": "ScoreCopy"
},
"staff": {
"type": "Pointer",
"required": true,
"targetClass": "LibraryStaff"
},
"action": {
"type": "String",
"required": true
},
"actionAt": {
"type": "Date",
"required": true
},
"notes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "ComposerTag",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"composer": {
"type": "Pointer",
"required": true,
"targetClass": "Composer"
},
"tagName": {
"type": "String",
"required": true
},
"tagSource": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}与 AI 代理一起构建
使用 Back4app AI 代理从此模板生成真实音乐记谱库应用,包括前端、后端、身份验证、乐谱、乐器、作曲家标签以及复制日志流程。
在 Back4app 上创建一个音乐乐谱库应用的后端,使用此确切的架构和行为。 架构: 1. 用户(使用 Back4app 内置):用户名,电子邮件,密码;objectId,createdAt,updatedAt(系统)。 2. 乐谱:标题(字符串,必填),作曲家(字符串,必填),索引号(字符串,必填),档案状态(字符串,必填),编制(指向编制的指针,可选),主要标签(指向作曲者标签的指针,可选);objectId,createdAt,updatedAt(系统)。 3. 作曲者标签:名称(字符串,必填),乐谱(指向乐谱的指针,必填),备注(字符串,可选);objectId,createdAt,updatedAt(系统)。 4. 编制:合奏类型(字符串,必填),所需部分(字符串数组,必填),难度(字符串,必填),乐谱(指向乐谱的指针,必填);objectId,createdAt,updatedAt(系统)。 5. 复制日志:乐谱(指向乐谱的指针,必填),动作(字符串,必填),复制状态(字符串,必填),时间戳(日期,必填),员工备注(字符串,可选);objectId,createdAt,updatedAt(系统)。 安全: - 只有授权的员工可以创建或更新乐谱和复制日志。使用云代码进行操作验证。 认证: - 注册,登录,登出。 行为: - 列出乐谱,通过编制和作曲者标签进行筛选,添加复制日志,并更新乐谱元数据。 交付: - Back4app 应用程序,带有架构、ACL、CLP;用于乐谱目录、编制审查、作曲者标签和复制日志的前端。
按下面的按钮打开代理,模板提示已预先填写。
这是没有技术后缀的基础提示。您可以在之后调整生成的前端堆栈。
API 游乐场
尝试针对音乐乐谱库架构的 REST 和 GraphQL 端点。响应使用模拟数据,不需要 Back4app 账户。
使用与该模板相同的架构。
选择您的技术
展开每张卡片以查看如何将 Score、ComposerTag 和 Instrumentation 与您选择的堆栈集成。
Flutter 音乐评分库后端
React 音乐评分库后端
React 原生 音乐评分库后端
Next.js 音乐评分库后端
JavaScript 音乐评分库后端
Android 音乐评分库后端
iOS 音乐评分库后端
Vue 音乐评分库后端
Angular 音乐评分库后端
GraphQL 音乐评分库后端
REST API 音乐评分库后端
PHP 音乐评分库后端
.NET 音乐评分库后端
您在每项技术中得到的内容
每个堆栈使用相同的乐谱库架构和 API 合同。
统一的乐谱目录结构
使用一致的架构管理 Score、ComposerTag、Instrumentation 和 CopyLog。
针对库的仪器感知浏览
在排练规划之前,根据 ensembleType、partsNeeded 和难度查找曲目。
库的作曲家标签过滤
按ComposerTag名称分组以支持季节构建和节目说明。
复制库的日志历史
通过易读的CopyLog记录跟踪借出、归还和货架移动。
REST/GraphQL库的API
使用灵活的API将乐谱和复制日志集成到网络、移动和员工工具中。
可扩展的库架构
添加新的音乐工作流程,例如预订或部分请求,而无需更换架构。
音乐得分库框架比较
比较所有支持技术的设置速度、SDK 风格和 AI 支持。
| 框架 | 设置时间 | 乐谱库的好处 | SDK 类型 | 人工智能支持 |
|---|---|---|---|---|
| 约 5 分钟 | 移动和网页上的乐谱目录工具的单一代码库。 | 类型化 SDK | 完整 | |
| 少于 5 分钟 | 快速目录仪表板,用于成绩搜索和标签。 | 输入型 SDK | 完整 | |
| ~3-7分钟 | 跨平台移动应用程序,用于成绩结账和日志。 | 输入型 SDK | 完整 | |
| 快速(5分钟)设置 | 服务器渲染的图书馆门户,供员工和协调员使用。 | 输入型 SDK | 完整 | |
| ~3-5分钟 | 轻量级的网页集成,用于分数库存屏幕。 | 输入型 SDK | 完整 | |
| 大约 5 分钟 | 用于货架检查和副本日志记录的原生 Android 应用。 | 类型化 SDK | 完整 | |
| 少于 5 分钟 | 用于排练准备和曲目查找的原生 iOS 应用。 | 类型化 SDK | 完整 | |
| ~3–7 分钟 | 用于分数和作曲家浏览的 Reactive 网页 UI。 | 类型化 SDK | 完整 | |
| 快速(5分钟)设置 | 用于图书馆操作和报告的企业网络应用程序。 | 已键入的SDK | 完整 | |
| 少于2分钟 | 灵活的GraphQL API,用于得分、标签和仪器查询。 | GraphQL API | 完整 | |
| 快速(2分钟)设置 | 用于库存和拷贝日志工具的REST API集成。 | REST API | 完整 | |
| 约3分钟 | 用于档案和目录工作流程的服务器端__品牌0__后端。 | __品牌0__ | 完整 | |
| ~3-7分钟 | 用于图书馆管理和报告的__品牌0__后端。 | 类型化SDK | 完整 |
设置时间反映了从项目引导到使用此模板架构的第一次评分或复制日志查询的预期持续时间。
常见问题
关于使用此模板构建音乐乐谱库后端的常见问题。