在我的web应用程序中,我有客户名称和客户电话号码。我应该多次允许相同的电话号码。但我不应该允许多次输入相同的客户名称。如果已经有一个叫'Sean Patrick‘的客户,手机号是'6039274849’。将来,我不应该允许使用相同名称的新用户('Sean Patrick')。但我可以输入相同的手机号码('6039274849')。
假设表结构为
CUSTOMER TABLE
columns
CUSTOMER_ID UNIQUE
CUSTOMER NAME
CUST_MOB_NUMBER我正在使用Spring ROO。我们将使用HibernateJPA(aspectJ代码)来处理与数据库相关的内容。
有谁能告诉我怎么做吗。到目前为止,我正在考虑制作两个列的用户界面。有没有什么方法可以让两个列同时具有唯一性?
发布于 2012-07-10 12:38:04
假设需求是有意义的(说没有两个客户会有相同的名字是没有意义的--世界上有很多John Smith)。而且人们通常会有多个手机号码。
您可以同时将customer_id和customer_name声明为唯一的(尽管customer_id几乎肯定应该声明为主键,而不仅仅是唯一的)
CREATE TABLE customer (
customer_id NUMBER PRIMARY KEY,
customer_name VARCHAR2(100) UNIQUE,
cust_mob_number VARCHAR2(20)
);您还可以将两列的组合声明为唯一
CREATE TABLE customer (
customer_id NUMBER PRIMARY KEY,
customer_name VARCHAR2(100),
cust_mob_number VARCHAR2(20),
CONSTRAINT uk_name_and_number UNIQUE( customer_name, customer_mob_number )
);https://stackoverflow.com/questions/11406415
复制相似问题