2013-11-24 3 views
0

Я использую netbeans и пытаюсь вставить новый адрес свойства в базу данных, которая работает. Мой добавочный агент не может мне помочь.Задачи INSERT с 2 таблицами

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 ; 

вот моя вставка заявление, чтобы добавить съемщик

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

Я думаю, что лучший дизайн Wo uld следует хранить адресную информацию там, где это имеет смысл, - таблицу свойств.

Подумайте, что вы хотите представлять, не беспокоясь о таблицах.

Можно ли арендовать недвижимость более чем одним арендатором за один раз? Способствует ли ваш дизайн соседи по комнате?

Вы хотите сохранить историю? Может ли арендатор несколько раз переезжать и арендовать более одного объекта?

Может ли арендодатель иметь более одной аренды одновременно? Можете ли вы арендовать жилье и бизнес?

Все эти вопросы должны иметь представление о мощности.

Внешний ключ входит во многие таблицы в отношениях «один ко многим».

Если у вас есть много-ко-многим, вам понадобится таблица JOIN с двумя внешними ключами.

+0

Это для малого управления недвижимостью, в общей сложности 17 квартир для аренды и арендаторов. Все, что я хочу сделать, это добавлять/удалять арендаторов по каждому адресу собственности и отслеживать, если они заплатили депозит и сумму, пока что так или иначе. Я собираюсь изменить свой вопрос еще раз, потому что, когда я экспортировал свою базу данных и таблицы, он выглядит иначе, чем то, что я разместил. – TraciBee

+0

Ничего из этого не изменяет тот факт, что адрес свойства принадлежит таблице свойств. Не позволяйте вашему отсутствию объекта с реляционным дизайном поставить под угрозу реальность системы, которую вы хотели бы моделировать. – duffymo

Смежные вопросы