2013-11-24 32 views
0

我正在使用netbeans並嘗試向數據庫插入新的屬性地址,該地址正常工作。我的添加租客不能有人幫助我。插入兩個表的問題

String addAddress = txtAddAddress.getText(); 
      String addRentAmt = txtAddAmt.getText(); 

      Statement lstatement = conn.createStatement(); 

      ls_query = "INSERT INTO Property(Address,RentAmt) " 
      + "VALUES ('" + addAddress + "'," + addRentAmt + ")"; 
     System.out.println(ls_query); 

但我需要它插在我的承租人表中的addressID爲好。

這裏是我的sql代碼,所以你可能會看到我的2表的結構。

CREATE TABLE IF NOT EXISTS `Property` (
    `AddressID` int(10) NOT NULL, 
    `Address` varchar(100) NOT NULL, 
    `RentAmt` double NOT NULL, 
    PRIMARY KEY (`AddressID`), 
    UNIQUE KEY `Address` (`Address`), 
    KEY `Address_2` (`Address`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=18 ; 

CREATE TABLE IF NOT EXISTS `Renter` (
    `RenterID` int(20) NOT NULL AUTO_INCREMENT, 
    `AddressID` int(10) DEFAULT NULL, 
    `FirstName` varchar(30) NOT NULL, 
    `LastName` varchar(30) NOT NULL, 
    `CellPhone` varchar(15) NOT NULL DEFAULT '000-000-0000', 
    `DepositPaid` char(1) NOT NULL DEFAULT 'N', 
    `DepositAmtPaid` decimal(6,0) NOT NULL DEFAULT '0', 
    PRIMARY KEY (`RenterID`), 
    UNIQUE KEY `AddressID` (`AddressID`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

這裏是我的INSERT語句添加承租人

String addFirstName = txtFirstName.getText(); 
String addAddress = txtShowAddress.getText(); 
String addLastName = txtLastName.getText(); 
String addCellPhone = txtCellPhone.getText(); 
String addDepositAmtPaid = txtDepositAmtPaid.getText(); 
Statement lstatement = conn.createStatement(); 

ls_query = "INSERT INTO Renter 
(FirstName,LastName,CellPhone,DepositPaid,DepositAmtPaid) " 
         + "VALUES('" 
         + addFirstName + "','" 
         + addLastName + "','" 
         + addCellPhone + "','" 
         + addDepositPaid + "'," 
         + addDepositAmtPaid + "," 
        + "' WHERE RenterID = '" + addressID + "'" ; 

但它不工作

+0

如果您將地址放在Renter表中(這是一個不好的主意),那麼當您刪除承租人時,它將被刪除。有道理,對嗎? – GolezTrol

+0

http://sqlfiddle.com/#!2/a7b31 – Mihai

回答

0

我想一個更好的設計禾該地址信息是有意義的 - 屬性表。

想想你想表達什麼,而不用擔心表格。

一個物業可以一次由多個租戶租用嗎?你的設計是否允許室友?

你想保存歷史嗎?租戶可以移動多次並租用多個房產?

租戶可以同時租用多個租賃嗎?你可以租用生活和商業嗎?

所有這些問題都應該讓你考慮基數。

外鍵進入許多表中一對多的關係。

如果你有多對多的,你需要一個JOIN表和兩個外鍵。

+0

這是用於小型物業管理,共17個出租公寓和租賃者。我想要做的就是向每個房產地址添加/刪除租房者,並且如果他們支付了押金和金額,那麼現在無論如何都要跟蹤。我將再次編輯我的問題,因爲當我導出數據庫和表時,它看起來與我發佈的不同。 – TraciBee

+0

這些都不會改變屬性地址屬於屬性表的事實。不要讓你在關係設計方面缺乏設施會影響你想要建模的系統的實際情況。 – duffymo