gpt4 book ai didi

sql-server - SQL Server中镜像的一对多关系

转载 作者:行者123 更新时间:2023-12-05 00:11:55 25 4
gpt4 key购买 nike

我使用SQL Server。目前,我的数据库中有两个表。

一个表是CmsContents,代表我的博客页面,第二个表是CmsImagesContents,它收集与特定页面相关的图像信息。

两个表之间的关系为One to Many类型,一页可以包含许多图像,但是一张图像只能包含一页。

我了解这种设计非常简单,因此我开始意识到一些限制,这是我的问题:


我需要先将图像添加到数据库中,然后再将其与页面相关联,我不是NULL值的忠实拥护者。我的设计中有哪些可用选项?
您会针对这种情况建议我的设计吗?您知道更好的选择吗?


谢谢你的帮助!

CREATE TABLE [dbo].[CmsImagesContents](
[ImageContentId] [int] IDENTITY(1,1) NOT NULL,
[ContentId] [int] NOT NULL,
[RowGuid] [uniqueidentifier] NOT NULL,
[Title] [varchar](64) NOT NULL,
[AltTag] [nvarchar](256) NOT NULL,
[Caption] [nvarchar](256) NOT NULL,
[CopyrightNote] [nvarchar](256) NOT NULL,

CONSTRAINT [PK_CmsImagesContents_ImageContentId]
PRIMARY KEY CLUSTERED ([ImageContentId] ASC)
)


ALTER TABLE [dbo].[CmsImagesContents] WITH CHECK
ADD CONSTRAINT [FK_CmsImagesContents_ContentId]
FOREIGN KEY([ContentId]) REFERENCES [dbo].[CmsContents] ([ContentId])

最佳答案

您可以创建一个相交表。如果我要命名表,它们将被命名

    Content
--------
ContentID (PK)
Title
Text
etc...

Image
-----
ImageID (PK)
Size
Title
etc....

ContentImages
--------------
ContentImagesID (PK)
ContentID
ImageID


现在在ContentImages中的imageID上添加唯一约束(因此它只能在相交的表中出现一次)

现在,您可以根据需要添加内容和图像,然后通过填充相交表将图像与内容关联

关于sql-server - SQL Server中镜像的一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5819274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com