Sql 简单数据库模式:优点和缺点?以身作则
我为这些冗长、咆哮的话道歉,但我凌晨3点就起床了,担心明天要去上班处理这个数据库。。。只是感觉不对,但也许我错了,就像事情按照我的方式进行一样。。。请告诉我你的想法 我们的数据库架构类似于:Sql 简单数据库模式:优点和缺点?以身作则,sql,mysql,database-design,schema,data-modeling,Sql,Mysql,Database Design,Schema,Data Modeling,我为这些冗长、咆哮的话道歉,但我凌晨3点就起床了,担心明天要去上班处理这个数据库。。。只是感觉不对,但也许我错了,就像事情按照我的方式进行一样。。。请告诉我你的想法 我们的数据库架构类似于: page: id, label, contentid, parentpageid content: id, xmldata 我们在页面表中有大约4000个条目 我已经包括了一个大大简化的页面层次结构,它看起来有点像本文底部的代码清单 问题的根源在于数据库中充满了以下内容: 对于每个带有“标签”的“页面
page: id, label, contentid, parentpageid
content: id, xmldata
我们在页面表中有大约4000个条目
我已经包括了一个大大简化的页面层次结构,它看起来有点像本文底部的代码清单
问题的根源在于数据库中充满了以下内容:
- 对于每个带有“标签”的“页面” 一套(有3套)有16套 子项,每个子项都标有节 数字李>
- 每个部分都有一个 名为“About”和 名为“Info”的子项
- 每个“关于”页面都有一组 贴上“关于事物”、“关于事物”标签的儿童 和“关于其他事情”
SET1
SECTION1
-About
-About Things
-About Stuff
-About Other Stuff
-Info
-Tasks
-A
-B
-C
...
-H
-Data
SECTION2
-About
-About Things
-About Stuff
-About Other Stuff
-Info
-Tasks
-A
-B
-C
...
-H
-Data
...
SECTION16
SET2
SECTION1
-About
-About Things
-About Stuff
-About Other Stuff
-Info
-Jobs
-1
-2
-3
...
-8
-ToDo
-A
-B
-C
...
-H
-Other Data
SECTION2
-About
-About Things
-About Stuff
-About Other Stuff
-Info
-Jobs
-1
-2
-3
...
-8
-ToDo
-A
-B
-C
...
-H
-Other Data
SET3 (Exact same setup as SET2)
...
谢谢 我认为你在用这些内容把自己打得死去活来。
如果不存在数据库的ER图,请绘制一个—您似乎已经对内容有了合理的把握,并对其进行规范化。
使用此ERD,您应该能够非常轻松地解决上面提到的大多数问题。您可以这样创建表: 菜单项:Id,名称
MenuItemContent:Id,内容
MenuItemHierarchy:ParentMenuItemId、MenuItemId、ContentId、SortKey 不过,通常我会: 菜单项:Id、名称、内容Id
MenuItemContent:Id,内容
MenuItemHierarchy:ParentMenuItemId、MenuItemId、SortKey
不要重复使用我的菜单项来显示不同的内容。如果他们称之为关系数据库是有原因的。如果没有多个表并使用联接,那么使用数据库的意义何在,最好使用平面文件。
您所谓的“其他员工”可以随心所欲地指指点点、开怀大笑,但数据库驱动应用程序的真正威力和有效性在于您开始使用连接和规范化数据。关于您所说的一些事情,请您想一想: “建议的解决方案是添加一个“类型”字段…” 如果您的某些业务内容显然需要“类型化”,因为在某种程度上,这些不同“类型”的对象之间存在一些相关的区别,那么从关系数据库的角度来看,这是您希望/需要设置多个表(每种类型一个表)的关键指示,至少在逻辑层面 如何在物理上组织这一点是另一回事,SQL未能正确区分逻辑/物理是一个悲哀但真实的现实,更悲哀和真实的现实是,由于SQL在这一层面上的失败,许多开发人员在这一层面上也没有线索 此外,目前没有对项目进行排序的方法 请记住,在逻辑级别,关系数据库不知道