Designed to be used in conjunction with previous post Persons table. Will allow for multiple addresses for individuals. Country field to draw from Country table but I would not foreign key the value to country table identity but reference it to the actual name. Personal naming convention to name foreign keys after the pkid[tablename] I find that works well for me and seems very logical. I have a large system at work which simply names foreign keys fkid can be difficult to find what table it refers to resulted in me thinking hard about a naming convention for foreign keys.
I like pkid[tableprefix]. I usually leave it at that have expanded below because its a single script and may or may not be used with an actual persons t0001 table.
/****** Object: Table [dbo].[t0002address] Script Date: 01/12/2020 08:12:51 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[t0002address]( [pkid] [int] IDENTITY(1,1) NOT NULL, [flatfloorno] [nvarchar](20) NULL, [housebuildingno] [nvarchar](20) NULL, [streetname] [nvarchar](50) NULL, [throughstreet] [nvarchar](50) NULL, [locality] [nvarchar](50) NULL, [towncity] [nvarchar](50) NULL, [districtcountyregionstate] [nvarchar](50) NULL, [country] [nvarchar](50) NULL, [postcode] [nvarchar](50) NULL, [dateentry] [date] NULL, [dateexit] [date] NULL, [currenta] [bit] NULL, [currentset] [date] NULL, [pkidt0001people] [int] NULL, [updated] [date] NULL, [created] [date] NULL, CONSTRAINT [PK_t0002address] PRIMARY KEY CLUSTERED ( [PKID] ASC )WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[t0002address] ADD CONSTRAINT [DF_t0002address_updated] DEFAULT (getdate()) FOR [updated] GO ALTER TABLE [dbo].[t0002address] ADD CONSTRAINT [DF_t0002address_created] DEFAULT (getdate()) FOR [created] GO