-1

我正在为一个网站制作一个页面,该网站的客户从该公司租用/购买打印机可以填写上一期间的打印文档数量(他们拥有的每台打印机)。

现在,我需要把它翻译成 MySQL。这个想法是当客户登录网页时,它会加载他们拥有的打印机的概览,所有这些打印机都在单独的框中。这些框每个都有一个输入字段,用于输入他们需要提交的数字。

因此,为了完成这项工作,我需要放入一个数据库,例如,一个客户拥有 6 种不同类型的打印机。

MySQL

--Table for Customers--
create table TBL_Pers (
Clientnr        int,
Name            varchar,
Post            char(6),
Cont            char(1),
Contdr          tinyint,
p_p_a           smallmoney)

--Table for Printer--
create table TBL_Printer (
PNr             int,
PBrand          varchar,
PName           varchar,
Serialnr        varchar)

我遇到的问题是我不知道如何将这些不同的打印机链接到一个人,更不用说如果我必须与公司提供的 200 位客户和 15 种不同类型的打印机打交道。

所以你可能会说我对 MySQL 很陌生 :)

4

3 回答 3

0

您正在寻找的是所谓的“多对多关系”。您可以通过添加另一个表来实现它:

create table TBL_Pers_Printer (
    LnkNr           int,
    ClientNr        int,
    PNr             int,
    foreign key (ClientNr) references TBL_Pers(ClientNr),
    foreign key (PNr) references TBL_Printer(PrinterNr)
);

然后将相应的人-打印机号对插入其中。这是解释关系数据库中多对多关系概念的众多资源之一。

于 2013-09-10T12:51:27.593 回答
0

您需要一个关联表来将两者关联起来。

这看起来像:

create table TBL_Pers_Printer (
    Per_Printer_Id  int auto_increment primary key,
    Clientnr        int references TBL_Person(ClientNr),
    Pnr             int references TBL_Printer(Pnr)
);

您可能希望在此表中包含其他信息,例如此人获得打印机的日期。

于 2013-09-10T12:51:44.633 回答
0

您应该有一个链接表 TBL_CustomerPrinter (Clientnr, PNr/SerialNo),其中 PNr/SerialNo 将是打印机,外键和 clientNr 将是客户端。该表将允许多个客户端,如下所示

clientID            PrinterID
1                   1
1                   6
1                   7
2                   8

即为链接表定义一组规则:

  • 一个客户可以有多台打印机
  • 一台打印机可以有多个客户端-这是问题-您的架构可以做到这一点吗?

基本上你需要一个客户端和打印机之间的对应表,你必须为此定义一组规则。希望这可以帮助

于 2013-09-10T12:58:10.267 回答