0

我在建模公司与供应商和客户之间的关系时遇到问题。基本上在我的系统中,供应商和客户也是公司,所以我制作了这个模式:

table.company:
id
name
//other fields

table.company_suppliers:
company_id FK table.company.id
supplier_id FK table.company.id

table.company_clients:
company_id FK table.company.id
client_id FK table.company.id

这个可以吗?

4

2 回答 2

1

我将只使用一个包含所有公司的表和一个位字段(由实例 Supplier 调用),它将告诉您哪些也是供应商。

Company

Id
Name
IsSupplier (bit)
Fk_IdSupplier  --it will relate this supplier to a company on the same table

或者您可以创建一个联结表(多对多)

Company 

    Id
    Name
    IsSupplier (bit)

CompanySupplier

fk_IdCompany
fk_IdSupplier
于 2013-06-14T13:13:11.430 回答
0

您的基本见解是正确的——您不想要不相关的客户和供应商表。但是你的身份证号码太多了。

create table companies (
  company_id integer primary key,
  company_name varchar(35) not null
);

create table suppliers (
  supplier_id integer primary key references companies (company_id)
  -- Other supplier columns go here.
);

create table clients (
  client_id integer primary key references companies (company_id)
  -- Other client columns go here.
);

如果您使用的是 MySQL,则需要稍微调整语法。MySQL 不支持声明主键和外键的所有标准 SQL 语法。

于 2013-06-14T14:17:45.540 回答