有两个表 A ,B
其中,aid是表A的主键,同时是表B的外键
bid是表B的主键,同时又是表A的外键。这样设计的表有问题吗?
如果没有的话,怎样创建呢?

解决方案 »

  1.   

    你在help中输入"外键",看看他是怎么解释的?
      

  2.   


    这种情况就像死锁: A需要B,B需要A。
      

  3.   

    USE [test]
    GO
    /****** 对象:  Table [dbo].[tbb]    脚本日期: 05/20/2008 01:24:25 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[tbb](
    [bid] [int] NOT NULL,
    [abid] [int] NULL,
     CONSTRAINT [PK_tbb] PRIMARY KEY CLUSTERED 
    (
    [bid] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    GO
    CREATE TABLE [dbo].[tba](
    [Aid] [int] NOT NULL,
    [baid] [int] NULL,
     CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED 
    (
    [Aid] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]GO
    ALTER TABLE [dbo].[tba]  WITH CHECK ADD  CONSTRAINT [FK_tba_tbb] FOREIGN KEY([baid])
    REFERENCES [dbo].[tbb] ([bid])
    GO
    ALTER TABLE [dbo].[tba] CHECK CONSTRAINT [FK_tba_tbb]
    GO
    ALTER TABLE [dbo].[tbb]  WITH CHECK ADD  CONSTRAINT [FK_tbb_tba] FOREIGN KEY([abid])
    REFERENCES [dbo].[tba] ([Aid])
    GO
    ALTER TABLE [dbo].[tbb] CHECK CONSTRAINT [FK_tbb_tba]
      

  4.   

    外键,只为了实现参照完整性.A关系的某个属性必须存在于B关系的主属性中,如同时有B关系的某个属性必须存在于A关系的主属性中,则可运用楼主的要求.没什么不可以的.
    具体实现如上.
      

  5.   


    那你INSERT一条数据试试,我说是“像”,不是“是”。我看你还没理解主键/外键的关系。
      

  6.   

    有两个表 A ,B 
    其中,aid是表A的主键,同时是表B的外键 
    bid是表B的主键这样就行了