database - 构建其中一行必须映射到另一个表中的多行的数据库的最佳方法?

标签 database database-design database-schema

我正在尝试创建一个数据库来存储设备表和操作表。每个设备将与多个操作相关联。 Action 之间会有很多重叠。例如,iPhone 和 Android 手机都会有基本的操作,例如“摇一摇”、“滑动”等。为了避免创建许多重复的操作,我计划引入第三个表,通过它们的 ID 将设备映射到操作。整个设置看起来像这样: enter image description here

这是最好的方法吗?还是仅复制操作更有效?对其他方法有什么建议吗?

最佳答案

这取决于其余的数据。

如果 iPhone 的“摇一摇”行与 Android 的“摇一摇”行不同(在查看其余数据时),那么您不妨使用 Actions 表中的外键直接访问您的设备表并跳过映射表。

但是,如果您的操作和设备确实是多对多的,那么您当前的架构就有意义了。

关于database - 构建其中一行必须映射到另一个表中的多行的数据库的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16752413/

相关文章:

sql-server - 从 ntext 转移到 nvarchar(max) 有什么问题吗

sql-server - SQL Server 数据库架构版本控制和更新

sql - 如何构建 SQL 数据模型以保持数据完整性

sql - 可嵌入与一对多

sql-server - 列表项表的 SQL DB 模式最佳实践

mysql - 如何改进字段名称

sql-server - 迁移 SQL Server 中的海量数据库

database - SQL Server 获取唯一记录

sql - 我应该使用唯一字符串作为主键还是应该将其作为单独的自动增量 INT?

mysql - 类似 Google Reader 的应用程序的数据库模式和查询