【问题标题】:mySQL Java Database ModelingmySQL Java 数据库建模
【发布时间】:2015-07-31 12:51:52
【问题描述】:

试图创建一个可以在 java 中查询的 SQL 数据库,但我不确定如何构建它。以下是我的分类: 1. 状态 2. 每个州内的引用 3. 各市内场馆 4. 各场馆的具体情况

这对某些人来说可能看起来很简单,但我担心将位于类别 #4 中的信息量,因为仅该类别就可以容纳最多的数据。其中最重要的部分是我当然需要在类别#4 中查询此信息并返回信息。有一个包含大量信息的类别是常见的做法,还是我需要进一步分解类别#4?此外,我遇到的另一个问题是我正在使用 java 为所有这些信息创建数组或 arrayLists,我不知道如何将数据从数组中获取到 mysql。任何信息表示赞赏。

【问题讨论】:

    标签: java mysql database-design multidimensional-array arraylist


    【解决方案1】:

    为关系数据库创建关系表和使用 Java 在关系数据库中查询关系表是两个不同的任务。

    首先,让我们创建关系表。

    State
    -----
    State ID
    State Name
    ...
    

    在状态表中,您存储有关状态的所有信息。 State ID 是主(集群)键,是一个自动递增的整数。

    City
    ----
    City ID
    State ID
    City Name
    ...
    

    在 City 表中,您存储有关城市的所有信息。 State ID 是 State 表的外键。在一个城市位于多个州的少数情况下,您可以为每个州创建一个城市行。例如,弗吉尼亚州布里斯托尔和田纳西州布里斯托尔是两个州的城市。

    Venue
    -----
    Venue ID
    City ID
    Venue Name
    Venue Type
    Venue Address
    ...
    
    Venue Type
    ----------
    Venue Type ID
    Venue Type Description
    

    在场地表中,您可以存储有关场地的所有信息。城市 ID 是城市的外键。您可以从城市行获取州信息。

    在场地类型表中,您可以存储各种场地类型,如酒店、剧院、餐厅、零售店等。

    创建Specifications 表的唯一原因是场地有多种类型的细节。否则,您可以在 Venue 表中添加 Venue Description 列。

    首先,正确设置关系表的关系。然后,您可以看到如何将关系映射到 Java 类。由列表组成的类可能是正确的方法。

    【讨论】:

      【解决方案2】:

      让您的代码使用域对象和表之间的最直接映射。如果你意识到你在一个表中存储了太多数据,你将能够通过更多地分解这些数据来进行重构。但是我不会太担心表中有太多数据,这就是数据库的用途。您需要考虑的是如何访问该数据,并确保您有正确的索引和主键。

      要将多行数据从 Java 插入 mysql,请搜索 Web。 Java: Insert multiple rows into MySQL with PreparedStatement 可能是一个好的开始。

      【讨论】:

      • 是的。首先询问“我的数据库中的逻辑实体(事物)是什么?”在此基础上构建您的数据库。让一切都与逻辑上有意义的模型一起工作。如果此时存在性能问题或其他类型的问题,那很好,打破“干净”模型来解决它们。但是不要一开始就破坏一个干净的模型,因为你认为将来可能会出现问题。很多时候没有,你会白白弄脏你的模型。
      猜你喜欢
      • 2010-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 2013-10-01
      • 2022-07-04
      相关资源
      最近更新 更多