java吧 关注:1,228,910贴子:12,690,087
  • 20回复贴,共1

关于数据库设计、算法问题

只看楼主收藏回复

我设计了个库,用于存放音乐,类型可以有多个用分号区分,请问怎么设计数据库,或者怎么做算法,可以快速检索包含什么类型的音乐


IP属地:广东来自Android客户端1楼2022-03-15 09:15回复
    类型单独一张表;音乐和类型的关系是多对多,衍生一张关联表;总共三张表


    IP属地:广东来自Android客户端2楼2022-03-15 12:45
    收起回复
      私了,可以帮你


      IP属地:浙江来自Android客户端3楼2022-03-15 13:01
      收起回复
        你可以看看三大范式的定义;你主表的type明显是可以拆分的,那么这个拆分的表,就衍生为type表,像2楼说的一样,用中间表去存储关联关系; 举个例子,主表1,"留香","许嵩","1"(这里是type(int)),然后type表,字段有id和typeName,比如1,mp4;2,mp3;3,MV,等,那么关联查询的时候,我只要根据当前主表的id,去查关联表,是不是可以查多条数据出来,那么这多条数据,直接拼接就行了啊


        4楼2022-03-15 16:48
        收起回复
          就是建立music_type表,里面的字段就是类型的映射,这个字段是增长的,然后再弄个表是管理这个映射关系


          IP属地:广东来自Android客户端5楼2022-03-15 18:26
          回复
            目前根据我的理解我得出的结论:
            数据库结构:
            music(主表)
            id name path(可以理解为音乐url,不过我是放在本地的)
            music_singer(歌手表)
            id singer1 singer2......(singer是歌手的hashcode)
            music_type(类型表)
            id type1 type2......(type是类型的hashcode)
            music_xx(关联表,关联不知道怎么命名)
            hashcode value
            解释:
            id是关联的主键,歌手类型之类的不确定字符串转换为唯一的哈希值存储,并成为字段值。
            说明:不知道这样设计好不好,如果有错请大佬批评指错


            IP属地:广东来自Android客户端6楼2022-03-17 14:59
            收起回复




              音乐-歌手多对多关联表

              音乐-类型多对多关联表


              IP属地:广东7楼2022-03-17 15:41
              收起回复