我正在使用netbeans并尝试将新的属性地址插入数据库,这是有效的。我添加Renter并不能有人帮助我。
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);
但我也需要将它作为地址ID插入我的租借表中。
这是我的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 :(得分:0)
我认为更好的设计是将地址信息保存在合理的位置 - 属性表。
想想你想要表达什么,而不必担心表格。
一个房产可以一次租用多个租客吗?你的设计是否允许室友?
你想保存历史吗?租客可以多次搬家并租用多个房产吗?
租客可以同时拥有多个租约吗?你可以租住生活和生意吗?
所有这些问题都应该让你考虑基数。
外键以一对多的关系进入许多表中。
如果你有多对多,你需要一个带有两个外键的JOIN表。