如何处理具有类似字段的数据库表

时间:2018-04-12 16:28:11

标签: mysql database database-design

我有数据库表申请人电池逆变器太阳能电池板电池逆变器太阳能电池板上的表格字段相同,

  • < b>总数
  • 容量
  • 电压
  • 并且它们与申请人表相关。 所以我的问题是我应该将电池逆变器太阳能电池板分成单独的表格或使用一个表格并添加一个字段来区分它们像这样
  • 类型(电池,逆变器,太阳能电池板)
  • 总数
  • 容量
  • 电压
  • <!DOCTYPE html>
    <html>
    
    <head>
      <style>
        table,
        th,
        td {
          border: 1px solid black;
          border-collapse: collapse;
        }
        
        th,
        td {
          padding: 5px;
          text-align: left;
        }
      </style>
    </head>
    
    <body>
    
    
      <table style="width:100%">
        <caption>Separate Databse Table</caption>
        <tr>
          <th>Battery</th>
          <th>Inverter</th>
          <th>Solar Panel</th>
        </tr>
        <tr>
          <td>Total Number</td>
          <td>Total Number</td>
          <td>Total Number</td>
        </tr>
        <tr>
          <td>Capacity</td>
          <td>Capacity</td>
          <td>Capacity</td>
        </tr>
        <tr>
          <td>Voltage</td>
          <td>Voltage</td>
          <td>Voltage</td>
        </tr>
      </table>
      <hr>
    
      <table style="width:100%">
        <caption>Single Databse table</caption>
        <tr>
          <th>Type</th>
          <th>Total Number</th>
          <th>Capacity</th>
          <th>Voltage</th>
        </tr>
    
      </table>
    
    </body>
    
    </html>

    2 个答案:

    答案 0 :(得分:2)

    是的,您应该使用单个表来区分您提到的字段。

    类型(电池,逆变器,太阳能电池板) 总数 容量

    • 类型(电池,逆变器,太阳能电池板)
    • 总数
    • 容量
    • 电压

    您可以在其中添加申请人表的外键作为其关系。

    • applicants_foregn_key / applicant_id
    • 类型(电池,逆变器,太阳能电池板)
    • 总数
    • 容量
    • <强>电压

    答案 1 :(得分:1)

    是基于意见,但是有可以帮助你决定的事情,

    • 您的客户端程序语言是什么?它是一种OO语言吗?
    • 您是否可以考虑使用对象类型来概括所有这些对象(电池,逆变器和太阳能电池板)?如果是这样的话就做了概括。

    如果您对这些问题的回答是肯定的,那么为对象创建父对象并将其映射到单个表即可。如果存在这种泛化,可以预测新对象与所有这三者之间将存在更多关系,因此单个表解决方案可以简化数据库设计和数据库理解。