在DB中提供实体关系?

时间:2012-10-13 10:52:18

标签: mysql sql database database-design

我正在设计一个有关超市或百货商店的数据库,这些数据库遍布全球。

我有国家和分支机构的名单。是否有人帮我将它们链接到数据库中。

3 个答案:

答案 0 :(得分:2)

这样的东西?

enter image description here

当然,您的表将包含更多列来存储其他数据 - 但这将是基本的骨架。

或者你究竟在问什么?你的问题不是很明确......

生成这个的T-SQL代码(根据MySQL调整它应该没问题):

CREATE TABLE dbo.Country
(
    CountryID int NOT NULL,
    CountryName varchar(50) NOT NULL
)

ALTER TABLE dbo.Country 
ADD CONSTRAINT PK_Country PRIMARY KEY CLUSTERED (CountryID)  
GO

CREATE TABLE dbo.State
(
    StateID int NOT NULL,
    StateName varchar(50) NOT NULL,
    CountryID int NOT NULL
)

ALTER TABLE dbo.State 
ADD CONSTRAINT PK_State PRIMARY KEY CLUSTERED (StateID) 

ALTER TABLE dbo.State 
ADD CONSTRAINT FK_State_Country 
FOREIGN KEY(CountryID) REFERENCES dbo.Country(CountryID)
GO

CREATE TABLE dbo.City
(
    CityID int NOT NULL,
    CityName varchar(50) NOT NULL,
    StateID int NOT NULL
)

ALTER TABLE dbo.City 
ADD CONSTRAINT PK_City PRIMARY KEY CLUSTERED(CityID) 

ALTER TABLE dbo.City 
ADD CONSTRAINT FK_City_State 
FOREIGN KEY(StateID) REFERENCES dbo.State(StateID)  
GO

答案 1 :(得分:1)

检查link。我想这就是你要问的问题

答案 2 :(得分:1)

如果我理解正确,你需要三个表(国家,城市和州),其中有一个id和一个表,用于引用国家,城市和州的ID的超市。

create table country(id int, name varchar);
create table city(id int, name varchar);
create table state(id int, name varchar);
create table supermarket(country int, city int, state int);