-3

我是数据库新手。

我有两张桌子:

  • 银行
  • 交换器

这些表中的每一个都可以有一个或多个电话号码。例如,银行 A 可能有两个电话,而交换机 B 可能有 5 个电话号码。

我可以这样做:为银行创建链接表bank_phones,也为交换器创建链接表。但是我将有两个结构几乎相同的表。这可以吗,还是我可以做得更好?

我想到了类似的东西:带有字段 id、main_id(其他表的链接,作为银行或交换器)、类型(将在此处写为银行或交换器)、phone_number 的桌面电话。这是一个好主意吗?如果没有,我怎样才能做得更好?

4

1 回答 1

0

简而言之,我会做很长的路要走。也就是说,我会有名为bank_phoneand的表exchanger_phone。这意味着,如果您愿意InnoDB在 MySQL 中使用表类型,您可以使用FOREIGN KEY引用来确保电话号码只能附加到实际存在的银行和交易所(请参阅此处的更多信息)。

同样,如果存在电话号码,这将防止银行或交易所被删除,这通常是一件好事。这称为引用完整性,有助于保持表之间的引用井井有条。

于 2013-04-02T21:24:16.980 回答