数据库 Table 路径组合

Database Table Path Combinations

我正在设计一个数据库,它将存储使用设备的所有说明视频/文本/音频路径。用户可以 select 是否希望说明以视频、文本或音频的形式出现(可以选择 3 种中的任何一种,但必须至少选择 1 种)。用户还将选择一种语言,这将是指令的语言。我想我已经弄清楚了一些 table 结构。但是,我要如何将所有组合存储到一个 table?

比如我的一个table有所有的文件路径组合,

path_id      button_text       audio_path       video_path        text_path
1            cbl.txt           null             null              cbl.txt
2            cbl.txt           null             cbl.mp4           null
3            cbl.txt           null             cbl.mp4           cbl.txt
4            cbl.txt           cbl.mp3          null              null
5            cbl.txt           cbl.mp3          null              cbl.txt
6            cbl.txt           cbl.mp3          cbl.mp4           null
7            cbl.txt           cbl.mp3          cbl.mp4           cbl.txt
8            bolt.txt          null             null              bolt.txt
9            bolt.txt          null             bolt.mp4          null
10           bolt.txt          null             bolt.mp4          bolt.txt
11           bolt.txt          bolt.mp3         null              null
12           bolt.txt          bolt.mp3         null              bolt.txt
13           bolt.txt          bolt.mp3         bolt.mp4          null
14           bolt.txt          bolt.mp3         bolt.mp4          bolt.txt

这考虑到了所有不同的组合,因此根据用户选择的设置,他们将返回与正确设置对应的主键。不过,我觉得这太多余了,效率可能不是很高,有什么更好的方法吗?

这样的事情怎么样:

设备table:

  device_id   device_name
     1          machine1

文件table

  file_id   device_id  file_type  file_path
     1        1           video     d:\videos\v1.mp4
     2        1            text     d:\texts\t1.txt
     3        1            pdf      d:\pdfs\p1.pdf
      ...

或者如果一个文件可用于多个设备,请添加另一个 table:

device_file table:

   device_id  file_id
      1          1
      1          2
      2          2

     ...

并且您可以删除文件中的 "device_id" 列 table。