我正在尝试创建一个数据库来存储设备表和操作表。每个设备将与多个操作相关联。 Action 之间会有很多重叠。例如,iPhone 和 Android 手机都会有基本的操作,例如“摇一摇”、“滑动”等。为了避免创建许多重复的操作,我计划引入第三个表,通过它们的 ID 将设备映射到操作。整个设置看起来像这样:
这是最好的方法吗?还是仅复制操作更有效?对其他方法有什么建议吗?
最佳答案
这取决于其余的数据。
如果 iPhone 的“摇一摇”行与 Android 的“摇一摇”行不同(在查看其余数据时),那么您不妨使用 Actions 表中的外键直接访问您的设备表并跳过映射表。
但是,如果您的操作和设备确实是多对多的,那么您当前的架构就有意义了。
关于database - 构建其中一行必须映射到另一个表中的多行的数据库的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16752413/