create table Area(id int primary key auto_increment, name varchar(100));
create table Map(id int primary key auto_increment,
area_id int not null,
name varchar(100),
foreign key (area_id) references area(id));
SqlFiddle
Mỗi Map
PHẢI có một Area
, như area_id
không phải là null (và là một Foreign key
trên Area
)
Nhưng bạn sẽ không thể (và nó không mong muốn) để có "ít nhất một bản đồ" cho từng khu vực.
Một ngày, bạn sẽ phải tạo một Area
. Và nó sẽ không có bất kỳ Map
vào lúc này. Hoặc thực hiện kiểm tra "thường xuyên" để xem Khu vực không có bất kỳ Bản đồ nào.
Bạn có thể muốn xóa Area
, nếu nó không có liên quan nhiều hơn Map
, khi bạn xóa Map
.
Nguồn
2013-06-11 13:10:09
Để tâm trí của tôi, kích hoạt giải pháp postet sau đó là phù hợp nhất. Cảm ơn câu trả lời của bạn! – tellob