我正在为一个网站设计一个数据库,该网站至少会有4种不同的对象类型(文章,博客文章,照片,故事),每个对象都有不同的数据要求来保证自己的表格.我们希望用户能够发布任何这些类型的评论.评论的数据要求很简单,与评论所关注的事物类型无关(即只是评论主体和作者的电子邮件).
我想避免为注释创建和管理4个以上的单独表的冗余,所以我希望能够在一个表中保存所有注释,可能通过2列指定关系:一个用于指定父实体和一个对于父行Id.
但是我不明白我是如何实现外键的,因为外键在2和2个表之间建立关系(对吗?).
因此,考虑到所有这些,最好的方法是什么?
有关
与我的其他问题相关:
数据设计
假设我有一个标签表:
tblTags
-------------
TagID (int)
Name (string)
Run Code Online (Sandbox Code Playgroud)
还有两个内容表:
tblBlogs
-------------
Anchor (GUID, Primary Key)
BlogTitle (string)
+ More custom fields
tblTutorials
-------------
Anchor (GUID, Primary Key)
TutorialTitle (string)
+ More custom fields
Run Code Online (Sandbox Code Playgroud)
还会有更多带有锚点的表格,它不仅仅是2.
然后将标签与上述实体相关联:
tblTagAnchors
-------------
TagID (int, Foreign Key)
Anchor (GUID, Foreign Key)
Run Code Online (Sandbox Code Playgroud)
我的问题是,一旦我建立了博客和教程与特定标签的关联,有没有办法编写一个查询来返回带有特定标签的博客或教程?无需对博客和教程进行单独查询?
主要用途是搜索,类似于(伪):
select from tblBlogs and tblTutorials where the GUID exists in tblTagAnchors where tagID = 5
for each record returned
if record from Blog
response.write("<a href=blogView.aspx?ID=" + recID)
else if record …Run Code Online (Sandbox Code Playgroud) sql database-design guid foreign-keys foreign-key-relationship