数据库中显示error1822,error1824

运行的时候显示order那里ERROR 1822 : Failed to add the foreign key constraint. Missing index for constraint ‘orderitem_ibfk_1’ in the referenced table ‘orders’,在网上搜了一下,看见要检查外键是否是另外的表的主键,但是都是呀,这是怎么回事啊
我后面又把order表注释掉,显示c_sevice那个表ERROR 1824 : Failed to open the referenced table 'fastfood_shop'又是咋回事啊

CREATE TABLE admin_login(
admin_id varchar(50) NOT NULL,
admin_pass varchar(50) DEFAULT NULL,
PRIMARY KEY (admin_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE order1(
cons_phone varchar(50) NOT NULL,
service_id varchar(50) NOT NULL,
order_id varchar(50) NOT NULL,
forder_money varchar(50) DEFAULT NULL,
order_way varchar(50) DEFAULT NULL,
cons_name varchar(50) DEFAULT NULL,
cons_addre varchar(50) NOT NULL,
PRIMARY KEY (cons_phone,service_id),
FOREIGN KEY (cons_phone) REFERENCES order1 (cons_phone),
FOREIGN KEY (service_id) REFERENCES c_service (c_service_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE c_service(
c_service_id varchar(50) NOT NULL,
c_service_name varchar(50) NOT NULL,
fastfood_shop_name varchar(50) NOT NULL,
PRIMARY KEY (c_service_id),
FOREIGN KEY (fastfood_shop_name) REFERENCES fastfood_shop(shop_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE fastfood_shop(
shop_name varchar(50) NOT NULL,
m_sale_v varchar(50) NOT NULL,
PRIMARY KEY (shop_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE dispatcher(
dispatcher_id varchar(50) NOT NULL,
dispatcher_name varchar(50) NOT NULL,
dispatcher_phone varchar(50) NOT NULL,
fastfood_shop_namel varchar(50) NOT NULL,
PRIMARY KEY (dispatcher_id),
FOREIGN KEY (fastfood_shop_namel) REFERENCES fastfood_shop(shop_name)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE wuliu(
cons_phonel varchar(50) NOT NULL,
disp_id varchar(50) NOT NULL,
deliver_time varchar(50) DEFAULT NULL,
PRIMARY KEY (cons_phonel,disp_id),
FOREIGN KEY (cons_phonel) REFERENCES order1(cons_phone),
FOREIGN KEY (disp_id) REFERENCES dispatcher(dispatcher_id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;