移动和Web应用程序中的数据库架构是否应该相同?

时间:2015-07-12 21:05:16

标签: mysql django mobile xamarin

我以这种方式设计了我的django网站数据库的架构。

人:

  1. 名称
  2. 年龄
  3. 性别等。
  4. 汽车:

    1. 人的外键
    2. 车名
    3. 汽车颜色 等。
    4. 自行车:

      1. 人的外键
      2. 自行车颜色等..
      3. 我已经使用django-tastypie将其转换为API。我想使用xamarin为此构建一个移动应用程序。该应用程序将有一个用于存储这些值的数据库。但是,用于存储这些值的Java / C#方法类似于

        class person{
        
        String name;
        int age;  
        String gender;
        List<Car> listofcars;
        List<Bike> listofbikes;
        
        }
        

        这与数据库的结构不同。

        这种情况下的有效方法是什么?

        1。)我的app数据库模式应该与我的服务器数据库模式完全相同吗?这样,在服务器和客户端之间同步值很容易。但要获得自行车或汽车列表,我需要执行多个查询。

        2。)或者我应该为我的应用程序开发一个不同的架构,以便我开发应用程序。同步的唯一缺点是不容易的。

1 个答案:

答案 0 :(得分:1)

是...... 排序

A database schema is just an abstract formal description of how you are storing your data.。 Django模型或MySQL DDL定义只是以具体方式表达这个抽象概念的方式。

例如,你的django模型和C#代码都描述了这个抽象的概念:

  

personnameagegender,可以有bikescars的集合。

最终,如果您的移动应用,API和Django网络应用能够进行通信,则必须包含并共享完全相同的信息。否则,您的系统将在传输之间丢失信息 - 例如,如果应用程序省略了年龄,并且django省略了性别,则在几次调用之后,您的数据库都没有。

您的移动应用和django应用程序是否必须拥有来自完全相同的地方的架构,但这对于很少的回报肯定会更难。例如,作为构建策略的一部分,您可以让django生成用于构建表的DDL,然后将其传递给应用程序。