【问题标题】:Composite Foreign key in ORACLEORACLE 中的复合外键
【发布时间】:2016-01-07 02:41:06
【问题描述】:

我试图将数据库模式转换为 ORACLE SQL 中的数据库

Books (BookID,PubID,Title,Author,Price,Availability)

Publisher (PubID,Name,Address,BookID)

Member (MemberID,Name,Address,MemberType,MemberDate,ExpiryDate)

Barrowings (MemberID,BookID,IssuedDate,ReturnDate,DueDate)

我已经完成了前 3 张桌子。但我对第四张桌子有疑问(借款) (MemberID,BookID,IssueDate) 我想将前 2 列 (MemberID,BookID) 作为复合外键(应该引用 2 个不同的表)

MemberID 引用 Member 表中的 MemberID 列 BookID 引用 Books 表中的 BookID 表。 IssiedDate 列是该表的主键 ORACLE SQL中如何制作复合外键

【问题讨论】:

  • 请显示到目前为止您对表的创建语句。仅供参考,这些都不需要 pl/sql。
  • "IssuedDate 是该表的主键" - 意味着您每天只能借一次。你不能让两个人在同一天借两本不同的书。

标签: sql oracle foreign-keys


【解决方案1】:

您不能创建一个引用 2 个父表的外键。

在这种情况下,您需要创建 2 个外键约束,一个用于 BOOKS,另一个用于 MEMBER。

【讨论】:

    【解决方案2】:

    创建表借用( MemberID varchar2(20) 约束 fk_memid 引用成员(MemberID), BookID varchar2(20) 约束 fk_bookid 参考 Books(BookID) )

    为此,首先您必须在专利表列上提供主键或唯一键。即来自书籍的 BookID 列和来自成员的 memberid 列..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多