在sql server中设计范式

发布于 2024-11-02 04:13:38 字数 183 浏览 1 评论 0原文

我有 2 个表(FirstTable 和 SecondTable)。我的FirstTable是标题表,SecondTable是明细表,但是FirstTable有复杂的主键。我如何在我的第二个表中对第一个表进行正常和最佳选择的引用。

表格

I have 2 table (FirstTable & SecondTable). My FirstTable is header table and SecondTable is detail table, but FirstTable has complex primary key. How I can have a reference in my SecondTable to first Table that be NORMAL and best choice.

Tables

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薆情海 2024-11-09 04:13:39

对于您的情况,至少有三种方法可以做到这一点。您选择的方式取决于您尚未告诉我们的信息。

选择之前请仔细考虑。事实上,您问这样一个非常基本的问题表明您可能在实施过程中犯错误。 (这是一个观察,而不是批评。)首先处理数据库的临时副本。期望摧毁它。

  1. 存储整个主键
    第二个表中的第一个表。那
    表示为 Key_F2 添加一列
    SecondTable,用以下内容填充它
    正确的数据,丢弃旧的
    约束,并添加一个新约束,
    其中将包括一个类似的子句
    外键(Key_F1、Key_F2)
    引用 FirstTable (Key_F1,
    Key_F2)
  2. 声明一个 UNIQUE 约束
    FirstTable.Key_F1。然后你可以添加
    SecondTable 的新约束
    其中将包括一个类似的子句
    外键 (Key_F1) 引用
    第一个表(Key_F1)
    。当然这个
    仅当值为
    FirstTable.Key_F1 是唯一的。
  3. 在SecondTable中添加一列来存储
    FirstTable.ID 中的值,以及
    用右边填充该列
    数据。然后你可以删除SecondTable.Key_F2列,并设置外键
    从 SecondTable.ID 引用到
    第一个表.ID。

There are at least three ways to do this in your case. The way you choose depends on information you haven't told us yet.

Think hard before you choose. The fact that you're asking such a very basic question suggests that you're likely to make mistakes in the implementation. (That's an observation, not a criticism.) Work on a scratch copy of your database first. Expect to destroy it.

  1. Store the entire primary key of
    FirstTable in SecondTable. That
    means adding a column for Key_F2 in
    SecondTable, populating it with the
    right data, dropping the old
    constraint, and adding a new one,
    which will include a clause like
    foreign key (Key_F1, Key_F2)
    references FirstTable (Key_F1,
    Key_F2)
    .
  2. Declare a UNIQUE constraint on
    FirstTable.Key_F1. Then you can add
    a new constraint to SecondTable
    which will include a clause like
    foreign key (Key_F1) references
    FirstTable (Key_F1)
    . Of course this
    will only work if values in
    FirstTable.Key_F1 are unique.
  3. Add a column to SecondTable to store
    the value in FirstTable.ID, and
    populate that column with the right
    data. Then you can drop the column SecondTable.Key_F2, and set a foreign key
    reference from SecondTable.ID to
    FirstTable.ID.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文