使用相同的表为其他表投影数据库

时间:2013-04-02 20:49:18

标签: mysql database

我是数据库的新手。

我有两张桌子:

  • 银行

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

我可以这样做:对于银行,创建链接表bank_phones,并为交换机也这样做。但是后来我会有两张表几乎相同的表。这样可以,还是我可以做得更好?

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

1 个答案:

答案 0 :(得分:0)

简而言之,我会做很长的路。也就是说我有一个名为bank_phoneexchanger_phone的表。这意味着,如果您愿意在MySQL中使用InnoDB表类型,则可以使用FOREIGN KEY引用来确保电话号码只能附加到实际存在的银行和交易所({{3} })。

同样,如果存在电话号码,这将阻止银行或交换机被删除,这通常是一件好事。这称为参照完整性,有助于保持表之间的引用顺利。