有一个名为Product(id,name)的表。产品中的每一行都是不同类型的产品。每个产品都有不同的信息数据。例如:像“互联网”这样的产品将具有“当前计划”,“账户号码”,“账户状态”等信息数据。而像“保险”这样的产品将拥有“收款人”,“受益人”,“存款总额”,“总额索赔”等信息数据。 还有另一个叫做Customer的表。JPA继承:一个表中的每行对应于Postgres中的表的DB设计
CREATE TABLE customer
(
id serial NOT NULL,
first_name text NOT NULL,
last_name text NOT NULL,
street_add text NOT NULL,
city text NOT NULL,
state text NOT NULL,
zip text NOT NULL,
phone text NOT NULL,
ssn text,
customer_since timestamp without time zone,
product_id integer NOT NULL,
intro_audio text NOT NULL,
search_params text,
verification_params text,
CONSTRAINT customer_pkey PRIMARY KEY (id),
CONSTRAINT fk_product_id FOREIGN KEY (product_id)
REFERENCES product (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
我想创建一个表中的每个产品: 例如互联网:
CREATE TABLE internet_product_info
(
id serial NOT NULL,
customer_id integer NOT NULL,
current_plan text NOT NULL,
acc_type text NOT NULL,
acc_no text NOT NULL,
CONSTRAINT internet_product_info_pkey PRIMARY KEY (id),
CONSTRAINT fk_customer_id FOREIGN KEY (customer_id)
REFERENCES customer(id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
为了保险:
CREATE TABLE insurance_product_info
(
id serial NOT NULL,
customer_id integer NOT NULL,
payee text NOT NULL,
beneficiary text NOT NULL,
total_deposits integer NOT NULL,
total_claims integer NOT NULL,
CONSTRAINT insurance_product_info_pkey PRIMARY KEY (id),
CONSTRAINT fk_customer_id FOREIGN KEY (customer_id)
REFERENCES customer(id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
我想问,如果这是一个正确的做法去寻找这样的场景或者有更好的选择。
在java中,我将检索同类产品性能:
public class Customer implements Serializable{
private int id;
private String firstName;
private String lastName;
private String streetAdd;
private String city;
private String state;
private String zip;
private String phone;
private String ssn;
private Date customerSince;
private Object internetProdInfo;
private Product product;
}
if(customer.getInternetProdInfo() instanceOf InternetProdInfo){
/* get the info for it*/
}
此外,我怎么能动态动态加载JSP页面上这些产品的具体领域。
覆盖'约束fk_product_id外键(PRODUCT_ID)'列'product_id'不存在。有一个列'sim_product_id'(我认为它不应该存在,或者) – joop
我将sim_product_id重命名为product_id – Deepika