【发布时间】:2021-05-19 12:09:59
【问题描述】:
我已经创建了餐厅 e-r 图,对于我的个人工作,任何人都可以帮助我导出函数依赖关系,规范化表(BCNF 形式)和基于获得的关系构建数据库。
这是我的 oracle SQL 代码:
create table restaurant(
name varchar(20),
city varchar(20) not null,
contact_no char(15),
constraint pk_name_restaurant primary key(name)
);
create table contact_number(
contact_no char(15),
address varchar(50) not null,
constraint pk_contact_no_contact_number primary key(contact_no)
);
create table cashier(
cashier_id char(10) ,
cashier_name varchar(20) not null,
constraint pk_chashierId_cashier primary key(cashier_id)
);
create table restaurant_has(
name varchar(20),
cashier_id char(10),
constraint pk_restaurantHas primary key(name,cashier_id)
);
create table chef(
chef_id char(10),
chef_name varchar(20) not null,
salary number(5,0),
constraint pk_chefid_chef primary key(chef_id)
);
create table chef_works(
name varchar(20) ,
chef_id char(10),
constraint pk_chefworks primary key(name,chef_id)
);
create table customer_order(
order_no char(10),
num_meals number(2,0),
bill_no char(10) not null,
constraint pk_orderno_order primary key(order_no)
);
create table chef_prepares(
chef_id char(10),
order_no char(10),
constraint pk_chefprepares primary key(chef_id,order_no)
);
create table meal(
meal_no char(10),
quantity number(2,0),
meal_price number(2,0),
meal_title varchar(25) not null,
order_no char(10) not null,
constraint pk_orderno_meal primary key(meal_no)
);
create table meal_title(
meal_title varchar(25),
ingredients varchar(75) not null,
constraint pk_mealtitle primary key(meal_title)
);
create table customer(
cust_id char(10),
cust_address varchar(50),
cust_phone char(15) not null,
constraint pk_custid_customer primary key(cust_id)
);
create table customer_phone(
cust_phone char(15),
cust_name varchar(20) not null,
constraint pk_customerphone primary key(cust_phone)
);
create table order_bill(
bill_no char(10),
price number(5,0) not null,
bill_date date not null,
cust_id char(10) not null,
cashier_id char(10) not null,
constraint pk_billno_orderbill primary key(bill_no)
);
alter table restaurant add constraint fk_contactNo_restaurant foreign key(contact_no) references contact_number(contact_no);
alter table restaurant_has add constraint fk_name_restauranthas foreign key(name) references restaurant(name);
alter table restaurant_has add constraint fk_cashierid_restauranthas foreign key(cashier_id) references cashier(cashier_id);
alter table chef_works add constraint fk_name_chefworks foreign key(name) references restaurant(name);
alter table chef_works add constraint fk_chefid_chefworks foreign key(chef_id) references chef(chef_id);
alter table chef_prepares add constraint fk_chefid_chefprepares foreign key(chef_id) references chef(chef_id);
alter table chef_prepares add constraint fk_chefid_chefprepares foreign key(chef_id) references chef(chef_id);
alter table customer_order add constraint fk_billno_customerorder foreign key(bill_no) references order_bill(bill_no);
alter table meal add constraint fk_mealtitle_meal foreign key(meal_title) references meal_title(meal_title);
alter table meal add constraint fk_orderno_meal foreign key(order_no) references customer_order(order_no);
alter table customer add constraint fk_custphone_customer foreign key(cust_phone) references customer_phone(cust_phone);
alter table order_bill add constraint fk_custid_orderbill foreign key(cust_id) references customer(cust_id);
alter table order_bill add constraint fk_cashierid_orderbill foreign key(cashier_id) references cashier(cashier_id);
【问题讨论】:
-
嗨 - 不幸的是,这个问题可能过于宽泛,无法得到有用的回应。如果您展示自己已成功实现的目标,然后针对您遇到的特定问题提出一个有针对性的具体问题,那么您更有可能得到答复
-
嗨,我的一个问题是账单和订单之间必须有关系吗?
-
第二个在我的图中订单和餐是一对多的关系,客户和订单,客户和账单也是一对多是真的吗?
-
您的任何问题都没有正确答案,这完全取决于您的具体情况、您的要求、您决定如何建模等。例如,如果一组人们一起吃饭,每个订单可能有多个客户;一个人可以为团队支付账单,或者团队中的每个人都可以支付他们的份额
-
@RBarryYoung 除了你之外,每个人都认为这个问题过于宽泛的原因是 Stackoverflow 的目的是获得特定、技术、编码挑战的答案。你不得不写一篇“论文”来试图回答这个问题,这一事实证明了这一点
标签: sql database database-design entity-relationship functional-dependencies