Sql 如何创建成员表结构?
我在SQL Server中有一个成员表结构:Sql 如何创建成员表结构?,sql,sql-server,Sql,Sql Server,我在SQL Server中有一个成员表结构: member\u表 memberid name address email 111 aaa IND a@a.com 222 bbb UK b@b.com 现在我想提供这样的便利,一个成员可以跟随其他成员。我该怎么做 我应该创建一个新表吗?我应该用旗子吗 我想创建一个新表并给成员表您可以创建另一个由两个属性组成的表(成员id,后面是成员id) 此表保存每个成员的记录,然后是其他成员的记录。这两个属性都引用您的
member\u表
memberid name address email
111 aaa IND a@a.com
222 bbb UK b@b.com
现在我想提供这样的便利,一个成员可以跟随其他成员。我该怎么做
我应该创建一个新表吗?我应该用旗子吗
我想创建一个新表并给成员表您可以创建另一个由两个属性组成的表(成员id,后面是成员id)
此表保存每个成员的记录,然后是其他成员的记录。这两个属性都引用您的成员表。这是在规范化多个关系时创建多个关系的标准方法 您可以创建另一个由两个属性组成的表(成员id,后面是成员id)
此表保存每个成员的记录,然后是其他成员的记录。这两个属性都引用您的成员表。这是在规范化多个关系时创建多个关系的标准方法 我将创建一个连接表,在两个成员ID上都有一个键,以确保最多有一行 我尽量不迎合YGWITs(您可能会想要它),但订阅表似乎需要一些额外的元数据,例如订阅开始日期或最后访问日期,以了解是否有新活动 我最终会得到这样的结果:
CREATE TABLE [dbo].[member_subscription](
[member_id] [int] NOT NULL,
[target_member_id] [int] NOT NULL,
[date_created] [datetime] NOT NULL,
[date_last_visit] [datetime] NULL,
CONSTRAINT [PK_member_subscription] PRIMARY KEY CLUSTERED
( -- key on both member_id fields
[member_id] ASC,
[target_member_id] 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
-- Foreign key contrain for member_id
ALTER TABLE [dbo].[member_subscription] WITH CHECK ADD CONSTRAINT [FK_member_subscription_member] FOREIGN KEY([member_id])
REFERENCES [dbo].[member] ([member_id])
GO
ALTER TABLE [dbo].[member_subscription] CHECK CONSTRAINT [FK_member_subscription_member]
GO
-- Foreign key contrain for target_member_id
ALTER TABLE [dbo].[member_subscription] WITH CHECK ADD CONSTRAINT [FK_member_subscription_target_member] FOREIGN KEY([target_member_id])
REFERENCES [dbo].[member] ([member_id])
GO
ALTER TABLE [dbo].[member_subscription] CHECK CONSTRAINT [FK_member_subscription_target_member]
GO
-- Default value for date_created
ALTER TABLE [dbo].[member_subscription] ADD CONSTRAINT [DF_member_subscription_datecreated] DEFAULT (getdate()) FOR [date_created]
GO
我将创建一个连接表,在两个成员ID上都有一个键,以确保最多有一行 我尽量不迎合YGWITs(您可能会想要它),但订阅表似乎需要一些额外的元数据,例如订阅开始日期或最后访问日期,以了解是否有新活动 我最终会得到这样的结果:
CREATE TABLE [dbo].[member_subscription](
[member_id] [int] NOT NULL,
[target_member_id] [int] NOT NULL,
[date_created] [datetime] NOT NULL,
[date_last_visit] [datetime] NULL,
CONSTRAINT [PK_member_subscription] PRIMARY KEY CLUSTERED
( -- key on both member_id fields
[member_id] ASC,
[target_member_id] 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
-- Foreign key contrain for member_id
ALTER TABLE [dbo].[member_subscription] WITH CHECK ADD CONSTRAINT [FK_member_subscription_member] FOREIGN KEY([member_id])
REFERENCES [dbo].[member] ([member_id])
GO
ALTER TABLE [dbo].[member_subscription] CHECK CONSTRAINT [FK_member_subscription_member]
GO
-- Foreign key contrain for target_member_id
ALTER TABLE [dbo].[member_subscription] WITH CHECK ADD CONSTRAINT [FK_member_subscription_target_member] FOREIGN KEY([target_member_id])
REFERENCES [dbo].[member] ([member_id])
GO
ALTER TABLE [dbo].[member_subscription] CHECK CONSTRAINT [FK_member_subscription_target_member]
GO
-- Default value for date_created
ALTER TABLE [dbo].[member_subscription] ADD CONSTRAINT [DF_member_subscription_datecreated] DEFAULT (getdate()) FOR [date_created]
GO
也许是一张有跟随者和跟随者的跟随者表?你是在2008年还是2005年?也许是一张有跟随者和跟随者的跟随者表?你是在2008年还是2005年??