如何在数据库列中存储多个项目?

Jud*_*ame 2 java mysql sql foreign-key-relationship

在我的项目中,员工插入一个表号,选择客户订购的所有项目并将其保存到数据库中。我有三张表:

Employee(empId, firstname, lastname)
Orders(orderId,tableNum,empIDFK,itemIDFK,totalPrice) 
Item(itemId,itemName, itemPrice)
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果员工在订单中放入多个项目,则只保存 itemIDFK 列中的最后一个项目。如何获取员工输入的所有项目的 ID?

在此处输入图片说明

这是一些示例代码,大多数按钮的代码都与此类似:

 private void chickenbuttonActionPerformed(java.awt.event.ActionEvent evt) {                                              
    // TODO add your handling code here:
     try{
     st = connection.createStatement();   
    String query;
    query = "SELECT itemName, itemPrice FROM item WHERE itemID = '14446'";
    String itemName = " ",itemPrice =" ";  

      ResultSet rs = st.executeQuery(query);

       if(rs != null){
        while(rs.next())
        { 
         itemName = rs.getString(1);
         itemPrice = rs.getString(2);
        }
     model.addRow(new Object[]{itemName, itemPrice});
      total+= Double.parseDouble(itemPrice);
       String format = formatter.format(total);
       totalField.setText(format);
       }

       //inserts corresponding item id in itemIDFK 
      String query2 = "Update orders SET itemIDFK = '14446' Where tableNum =  " + tableNum;
      ps= connection.prepareStatement(query2);
      ps.executeUpdate();
         } catch (SQLException ex) {}
Run Code Online (Sandbox Code Playgroud)

SOf*_*tic 5

在这种情况下,您想要做的是添加另一个表,例如OrderDetails,该表将具有:

PK: Id
FK: OrderId
FK: ItemId
Run Code Online (Sandbox Code Playgroud)

因此,您可以将多个项目添加到订单中。将会有一one-to-manyOrderOrderDetailsmany-to-many之间OrderDetailsItems