2013-11-24 1 views
0

netbeans를 사용하고 있으며 데이터베이스에 새 속성 주소를 삽입하려고합니다. 렌터를 추가하면 누군가 제발 나를 도와 줄 수 없습니다.테이블 2 개에 INSERT 문제가 발생했습니다.

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 `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 ; 

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 ; 
은 임차인

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

작동 나던 uld는 속성 테이블 인 주소 정보를 유지해야합니다.

테이블에 대해 걱정하지 않고 표현하고 싶은 것을 생각해보십시오.

한 번에 둘 이상의 임대인이 부동산을 임대 할 수 있습니까? 당신의 디자인은 룸메이트를 허용합니까?

기록을 보존 하시겠습니까? 임대인은 여러 번 이사를 할 수 있으며 하나 이상의 부동산을 빌릴 수 있습니까?

임대인이 동시에 임대를 할 수 있습니까? 당신은 생활과 사업을 위해 빌릴 수 있습니까?

이러한 모든 질문은 카디널리티를 고려해야합니다.

외래 키는 일대 다 관계에서 많은 테이블로 이동합니다.

many-to-many가있는 경우 두 개의 외래 키가있는 JOIN 테이블이 필요합니다.

+0

작은 자산 관리를 위해 총 17 개의 임대 아파트와 임차인을 대상으로합니다. 내가하고 싶은 일은 임차인을 각 속성 주소에 추가/삭제하고, 입주자가 금액과 금액을 지불했는지 여부를 계속 추적하는 것입니다. 내 질문을 다시 편집하려고합니다. 데이터베이스 및 테이블을 내보낼 때 내가 게시 한 것과 다르게 보입니다. – TraciBee

+0

속성 주소가 속성 테이블에 속한다는 사실을 변경하지 않았습니다. 관계형 디자인을 갖춘 시설이 부족하여 모델링하려는 시스템의 현실성을 손상시키지 마십시오. – duffymo

관련 문제