好的,所以我试图找出解决这个问题的最佳设计。我正在尝试创建一个数据库,其中包含潜在客户、客户和合同。我在想的是我应该为潜在客户和客户准备两张桌子。尽管这些希望是相同的实体。我对此的第二个想法是创建一个名为 client_status 的表,看起来像这样。
CREATE TABLE status(
status_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
status_name VARCHAR(40) NOT NULL,
PRIMARY KEY(status_id)
);
INSERT INTO status (status_id, status_name) VALUES ( '1', 'Prospect');
INSERT INTO status (status_id, status_name) VALUES ( '2', 'Client');
CREATE TABLE client(
client_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
fname VARCHAR(40) NOT NULL,
mname VARCHAR(40) NOT NULL,
lname VARCHAR(40) NOT NULL,
PRIMARY KEY(client_id)
);
CREATE TABLE client_status(
status_id INTEGER UNSIGNED NOT NULL,
client_id INTEGER UNSIGNED NOT NULL,
FOREIGN KEY(status_id) REFERENCES status(status_id),
FOREIGN KEY(client_id) REFERENCES clients(client_id)
);
这是处理手头问题的正确方法吗?