首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该使用并添加到现有的非规范化DB结构中,还是创建自己的结构?

我应该使用并添加到现有的非规范化DB结构中,还是创建自己的结构?
EN

Stack Overflow用户
提问于 2011-09-30 13:20:29
回答 2查看 62关注 0票数 0

我们有一个第三方软件,我被要求为它创建一个扩展。扩展将处理当前软件中存在的数据,并包括一些附加数据。

现有的数据被极度非正规化。我将使用的大多数数据(大约为4-5个不同的实体)都存在于一个表中。我需要向这些实体中的大多数添加额外的字段。

我看到了两种方法:

  1. 为新字段创建一个新表,该表与现有表1:1相匹配,并使用与它们使用的非规范化样式相同的

优点:它符合现有的非规范化数据库结构,并且易于创建。

缺点:非常不规范,我有点痴迷于使我的数据库正常化。当前表已经有50多个列,它实际上应该被分成4-5个不同的表。

我也不认为我可以在当前的数据库结构中轻松地使用EF (我首选的处理数据库的方式),必须在代码中手动创建数据模型,而不是使用EF来生成它们,

  • 创建一个全新的表集,并使用触发器来同步表之间的数据。

优点:可以以我想要的方式创建表,并可以使用EF处理数据库操作,并为我生成数据模型。

缺点:需要使用触发器将数据与现有表同步。

你觉得哪一个更好?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-30 19:19:15

我想这取决于你在看多大的扩展。如果您要在现有的接口中添加一些提示,特别是如果您不需要包装现有的接口,那么您最好保持住自己的鼻子,接受丑陋的基本数据结构。

这一切都归结为需要构建和维护的一小部分代码:

  1. 扩展代码,该扩展代码由非规范化基+扩展属性或-
  2. 清洁扩展代码+所有丑陋的表同步触发代码组成。

在我看来,如果扩展很大,那么2可能会小于1。然而,如果你只看那几个钟声和口哨,那么1可能会比2小得多。

票数 1
EN

Stack Overflow用户

发布于 2011-09-30 13:33:30

我认为答案是如何最好地利用你的时间,再加上你现在和将来对桌子有多大的控制权。就我个人而言,我会创建一个具有某种关系的备用表。如果您选择修改现有的表,那么您现在不仅需要回归、测试应用程序和测试新应用程序,而且还面临着未来更新破坏这两个应用程序的风险。所以我说,用你能控制的东西。你的时间将得到更有效的利用,你在未来的道路上以较低的风险定位自己。对你来说很聪明,对生意也很聪明。希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7610970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档