没有外键引用的sql列

时间:2013-10-18 16:03:48

标签: sql foreign-keys foreign-key-relationship

在我的数据库中,我需要创建一个包含临时数据的表,稍后将删除部分数据。该表将包含IP列。问题是我已经将IP存储在其他表中,并在许多其他表中引用它。因此,如果我在我的新表(将包含临时数据的那个)中创建外键约束并稍后删除行,如果新列具有外键引用,我将在原始表中具有不可用的IP-s。

表1 列:

  IP,
  Col1

表2 列:

  IP,
  Col1,
  Col2

所以我的问题是,在需要时创建没有外键引用的列是一种好方法吗? db设计是否可以不在表2中为IP列创建外键引用?

2 个答案:

答案 0 :(得分:0)

我假设您正在使用一个表来存储会话数据,而另一个表则用于更长久地存储有关IP的数据。

您可以将会话表中的IP用作表的外键,其中包含有关IP的更多信息。如果您想查询当时正在使用您的应用程序的所有人的信息,这将非常有用。

答案 1 :(得分:0)

在某些情况下可以创建没有FK引用的列,您可能面临的问题是,由于没有约束,您可以从一个表中删除数据并在另一个表中包含孤立记录。

此外,没有任何内容可以强制您在一个表中输入的数据也存在于另一个表中。

这里的主要问题是,虽然您将IP存储在其他表中,但是您是否需要使用IP列将新表连接到现有表?如果不是那么你没有使用FK。