none
sqlite数据库,两个表设置成多对多关系。两个数据表的中介部分是设置成单个表好一点,还是“动态分表”好一点? RRS feed

  • 常规讨论

  • 我在纠结一个问题,在客户端上应用程序使用sqlite数据库建立多对多关系的数据存储。使用单个表来当中介部分,我担心随着单个表的数据量增长,查询效率和增删改效率可能会影响到用户对应用程序的操作体验。后来我想到了分表,查询某一个分表,比带where条件查询单个表,效率要高。

    有B表和A表,,A表的结构是目录结构。

    之所以叫“动态分表”的原因是,a表数据的每行的id列的字符串就表示一个数据表名。也就是说一个树节点映射一个数据表。即节点数据表,每个节点数据表存放的都是B表的数据,我把这些节点数据表称为“分表”,首先是sqlite数据库,通过程序对树节点(节点数据表)进行增删改查,由于程序可以对节点数据表进行增删改查,所以叫“动态分表”。这就是用“动态分表”来充当两个表的中介载体。

    应用程序部署到客户端后,sqlite数据库不会被人工维护。因此采用哪种方式比较好?sqlite数据库部署到客户端上还有哪些问题?







    2017年6月18日 11:22

全部回复

  • 你好,

    >>两个数据表的中介部分是设置成单个表好一点,还是“动态分表”好一点?                                 

    我个人认为,作为关系型数据库,还是加一个表更好一点。这样的话,业务逻辑更清晰,便于以后的维护,而且代码更简单,易读。 至于效率问题,可以通过索引等方法来提高。

    Best regards,

    Cole Wu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年6月19日 5:21
    版主
  • 你好,

    >>两个数据表的中介部分是设置成单个表好一点,还是“动态分表”好一点?                                 

    我个人认为,作为关系型数据库,还是加一个表更好一点。这样的话,业务逻辑更清晰,便于以后的维护,而且代码更简单,易读。 至于效率问题,可以通过索引等方法来提高。

    Best regards,

    Cole Wu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    首先是sqlite数据库,在应用程序部署的客户端中,不是处在服务器端的sqlserver,可被人工维护,sqlite在应用程序部署的客户端中,至少人工维护是不可能了。而且“动态分表”,我已经用程序实现了,通过程序对树节点(节点数据表)进行增删改查



    2017年6月19日 7:38