Mysql 完全的数据库完整性(5倍多的表)与模仿rdbms中的oo概念相比

Mysql 完全的数据库完整性(5倍多的表)与模仿rdbms中的oo概念相比,mysql,rdms,Mysql,Rdms,所以我有了这个nightmere(RDBMS)。关于在rdbms中模仿oo概念,我在这里问了很多问题,但没有一个得到回答 许多网站(论坛、社交网络等)都有许多用于发布内容的功能。 他们可以有评论,喜欢,分享,明星等等 假设可以有几种类型的帖子(普通帖子、评论、照片、问题),而某些类型的帖子不能拥有所有的功能(比如说只有星星和评论),那么很难决定走哪条路 我可以去: 在oo道路上,为每个帖子创建实体id和实体类型(该实体id将在每个帖子表中引用,功能也将引用实体id)。还需要实体类型来生成一些完

所以我有了这个nightmere(RDBMS)。关于在rdbms中模仿oo概念,我在这里问了很多问题,但没有一个得到回答

许多网站(论坛、社交网络等)都有许多用于发布内容的功能。
他们可以有评论,喜欢,分享,明星等等

假设可以有几种类型的帖子(普通帖子、评论、照片、问题),而某些类型的帖子不能拥有所有的功能(比如说只有星星和评论),那么很难决定走哪条路

我可以去:

  • 在oo道路上,为每个帖子创建实体id和实体类型(该实体id将在每个帖子表中引用,功能也将引用实体id)。还需要实体类型来生成一些完整性触发器,例如注释实体可以具有like特性,但不能具有comment特性。如果需要为帖子添加更多功能(需要添加一些新的实体类型),则此实体类型字段将是一个夜猫子字段。这对数据完整性来说简直是一团糟

  • 或者在5倍以上的数据库表上。我的意思是为每种类型的post表设计特性表。这将需要更多的连接和更长的查询,但至少我知道我不会有数据完整性或可伸缩性方面的问题

我必须使用rdbms,不能采用oodbms方式或图形数据库方式

你会从这两种设计中选择什么?或者你会如何设计它更好

你会从这两种设计中选择什么?或者你会如何设计它更好

关注应用程序语言中的OO。RDBMS本身并不适合OO概念。相反,使用null等,而不是试图创建子类表

(好吧,也许我的答案是站不住脚的。但它把这句老话从“未回答”中去掉了)

你会从这两种设计中选择什么?或者你会如何设计它更好

关注应用程序语言中的OO。RDBMS本身并不适合OO概念。相反,使用null等,而不是试图创建子类表


(好吧,也许我的答案是站不住脚的。但它把这句老话从“未回答”中去掉了。)

我目前对这两种方法都感到失望(尤其是对空唯一性的TSQL处理被破坏:-/)。我希望有一个“模板”或“混合”RDBMS。吼叫声这就是说,许多OOM可以映射到“传统”RDBMS,因此没有必要“放弃OOM”或层次结构。DB级别的完整性是它可以得到的。。有趣。@pst我想知道orm如何为约束构建这些触发器(还没有见过php orm能够创建硬编码的约束触发器)。我真的不太喜欢orm。(php orms)@pst我不认为orms会自动解决多态关联和rdbms问题。他们会。。如果你愿意生活在他们的范围内;-)更困难的问题是确保数据库的完整性。通常情况下,当移动到ORM时,DB层会因为预期的访问(以及使用它的“保证”)而“软化”。我喜欢一个强大的数据库层,也是我目前在LINQ2SQL中使用的唯一一个“ORM”。这是好的(因为我可以实现上面的任何一个),坏的是它大部分是手动的。。。。我想知道是否有任何建模工具可以帮助在同质化表之间复制公共功能。。也就是说,使用RDBMS,但不要手动使用。我目前对这两种方法都感到失望(尤其是对空唯一性的TSQL处理:-/)。我希望有一个“模板”或“混合”RDBMS。吼叫声这就是说,许多OOM可以映射到“传统”RDBMS,因此没有必要“放弃OOM”或层次结构。DB级别的完整性是它可以得到的。。有趣。@pst我想知道orm如何为约束构建这些触发器(还没有见过php orm能够创建硬编码的约束触发器)。我真的不太喜欢orm。(php orms)@pst我不认为orms会自动解决多态关联和rdbms问题。他们会。。如果你愿意生活在他们的范围内;-)更困难的问题是确保数据库的完整性。通常情况下,当移动到ORM时,DB层会因为预期的访问(以及使用它的“保证”)而“软化”。我喜欢一个强大的数据库层,也是我目前在LINQ2SQL中使用的唯一一个“ORM”。这是好的(因为我可以实现上面的任何一个),坏的是它大部分是手动的。。。。我想知道是否有任何建模工具可以帮助在同质化表之间复制公共功能。。也就是说,使用RDBMS,但不要手动使用。