当前位置:  开发笔记 > 数据库 > 正文

这是一个好的数据库设计概念吗?

如何解决《这是一个好的数据库设计概念吗?》经验,为你挑选了1个好方法。

EDIT1:试图通过重命名表格及其关系来清除问题.编辑2:请不要查看我在三个数据库表中保存的数据类型.它们是在飞行中组成的.它们不是我真实世界的场景(不,我不能谈论我的真实世界数据......实际上它是1个父母和6个孩子,目前).请忽略哪种类型的数据,只看一些数据是必需的.EDIT3:两个FK是0或1比1的关系.不是0到很多.不是1比1.我试图避免0或1比1关系到1比1的关系,所以我不需要有OUTER JOINS但是有一个INNER JOIN.

问题:我需要知道建议的数据库设计是好还是坏/跛足等.

问题:今天我尝试制作索引视图,但失败了因为我的表有外连接.叹.所以我想知道我是否可以将其重新设置为以下设计:

三张桌子.

table_User在table_Address上有一个FK

table_User在table_Vehicle上有一个FK

等等..

和表B和C(现在像查找表一样)有...

Id INT IDENTITY PK

描述NVARCHAR(100)NULLABLE

注意到可空的?这样,table_Address中的某些内容在table_Address中不存在...该字段为null(因为内部连接).

之前,我做了一个LEFT OUTER JOIN,所以如果table_b中没有数据,我将得到空值是每个字段的结果.

我会在这里抛出一些数据示例......

Table_User

ID:1,名称:Fred,AddressID:1(NULL)

ID:2,姓名:Joe,地址ID:2(史密斯街1号.....)

ID:3,姓名:Jane,地址ID:2(史密斯街1号.....)

Table_Address

ID:1,描述= NULL

ID:2,描述= 1史密斯街

等等

那么我最终可以把这一切都放到一个索引视图中.(我的现实生活场景有大约8个表).

注意:DB是Microsoft Sql Server 2008,但这可能适用于任何数据库.

Q1:那个设计看起来好吗?

Q2:所以我在这里做的是我正在对数据进行规范化,对吗?通过保持内部连接在一起.

Q3:最后,如果这是一个好的方式..我还可以确保表中的数据是唯一的(例如街道地址)有一些独特的约束或键或索引或什么(我不确定适当的术语).

谢谢大师!



1> rgargente..:

我发现你的问题令人困惑,但也许我可以帮助一点.

首先,表没有连接,查询有.您不创建具有到另一个表的连接的表.只有两个表可能相关,您可以使用连接查询这些表.

我建议你阅读有关db规范化的内容.维基百科有一篇很棒的文章:http://en.wikipedia.org/wiki/Database_normalization

关于你目前的情况,我不确定你想做什么.如果该地址在不同的行中重复,那么拥有地址的ID似乎没问题.但是,需要几个"地址表"似乎很奇怪.设计时要记住的最重要的事情是: - 在每个表中都有一个正确的主键,这样你就可以正确地连接表. - 除非你有充分的理由,否则不要重复数据.但我再次推荐上一篇文章.

希望有所帮助!:)

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有