逻辑建模难度

时间:2014-11-18 18:20:17

标签: sql sql-server database recursion recursive-datastructures

我的任务是设计一个简单的数据库,该数据库将存储每个餐厅所属的餐馆,客户和类别的信息(例如美国,印度......)。问题是我不确定如何建模数据库,因为每个客户可能有零个或多个注册的其他客户 顾客为朋友。虽然客户可以有很多朋友联系,但是 每个朋友的连接都必须记录日期。 我假设我必须创建另一个名为Friends的表,它将包含cust_id,data作为属性。

我的表是:

Restaurants(rest_id,name,address,date_opened,income_cat_id*)
Category(car_id,title,Description)
Customers(cust_id,name,address,DOB,Mobile_number)

这是我的ER图,但正如我所说,我不确定递归关系是否适合我的Customers表:

Here is the ER diagram

2 个答案:

答案 0 :(得分:3)

是的,您需要另一个表来建模连接,例如:

Connection(cust_id1, cust_id2, connectdate)

答案 1 :(得分:0)

非常感谢你! 这是否意味着我必须在Connection表中具有以下约束?

CONSTRAINT pk_Connections PRIMARY KEY (cust_id1,cust_id2),
CONSTRAINT fk_Customers_Connections_cust_id1 FOREIGN KEY (cust_id1) REFERENCES Customers(cust_id)
                                                ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_Customers_Connections_cust_id2 FOREIGN KEY (cust_id2) REFERENCES Customers(cust_id)
                                                ON DELETE NO ACTION ON UPDATE NO ACTION);