[英]How to create member_follower table structure?
I have one member table structure in SQL Server: 我在SQL Server中有一个成员表结构:
member_table
memberid name address email
111 aaa IND a@a.com
222 bbb UK b@b.com
Now I want to give such facility that one member can follow as many other members. 现在,我想提供一种便利,使一个成员可以跟随其他许多成员。 How can I do that?
我怎样才能做到这一点?
Should I create a new table? 我应该创建一个新表吗? Should I use any flags?
我应该使用任何标志吗?
I'm thiking to create a new table and give Member table 我想创建一个新表并给会员表
You can create another table consisting of two attributes (member_id, follows_member_id) This table keeps records of each member following other members. 您可以创建另一个包含两个属性(member_id,follows_member_id)的表。该表保留每个成员在其他成员之后的记录。 Both attributes reference your members table.
这两个属性均引用您的成员表。 This is a standard approach in creating a many-many relation as it is normalized.
这是规范化创建多对多关系的一种标准方法。 read more
阅读更多
I would create a junction table with a key on both member_ids to ensure there is at most 1 row. 我将在两个member_id上创建一个键都具有键的联结表,以确保最多有1行。
I try to not cater to YGWITs (your gonna want it), but it seems a subscription table would call for some additional metadata such as the date the subscription starts or the last access date to know if there is new activity. 我试图不迎合YGWIT(您想要它),但是似乎订阅表会要求一些其他元数据,例如订阅开始的日期或最后访问日期,以了解是否有新活动。
I would end up with something like this: 我最终会遇到这样的事情:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.