Sql 你认为什么更好?全部集中在一个地方或分开

Sql 你认为什么更好?全部集中在一个地方或分开,sql,mysql,oracle,logic,Sql,Mysql,Oracle,Logic,你认为哪一个更好?为什么 我总是需要所有的数据,我永远不会只需要名字而不需要“tool1,tool2” 1)假设我有表“Woods”和“WoodsData” 在“树林”里,我有: id(自动递增) 名称(木材名称) 什么时候(木头什么时候被砍倒的) 和其他表格“WoodsData” id(wich链接到woods id) 工具1(用于砍伐树木的工具1,正确或错误) 工具2 工具3 工具4 工具5 次数(使用工具的次数) 因此,通过连接两个表,select将出现在这里 2)一张桌子“Woo

你认为哪一个更好?为什么

我总是需要所有的数据,我永远不会只需要名字而不需要“tool1,tool2”

1)假设我有表“Woods”和“WoodsData”

在“树林”里,我有:

  • id(自动递增)
  • 名称(木材名称)
  • 什么时候(木头什么时候被砍倒的)
和其他表格“WoodsData”

  • id(wich链接到woods id)
  • 工具1(用于砍伐树木的工具1,正确或错误)
  • 工具2
  • 工具3
  • 工具4
  • 工具5
  • 次数(使用工具的次数)
因此,通过连接两个表,select将出现在这里

2)一张桌子“Woods”看起来像这样:

  • id(自动递增)
  • 名称(木材名称)
  • 什么时候(木头什么时候被砍倒的)
  • 工具1(用于砍伐树木的工具1,正确或错误)
  • 工具2
  • 工具3
  • 工具4
  • 工具5
  • 次数(使用工具的次数)

注意:“tool1,tool2,tool3,tool4,tool5”应该是50个,我只是不想把它们都写在这里:p都是错误的,你应该规范化数据:“tool1”到“tool50”应该是额外表格中的“tool”。阅读一些关于标准化的内容。

我认为:

树林

  • id(自动递增)
  • 名称(木材名称)
  • 什么时候(木头什么时候被砍倒的)
工具

  • id(自动递增)
  • 名称(工具名称)
然后是一个连接表,显示在哪些树林中使用了哪些工具

伍兹工具

  • wood_id(Woods.id的外键)
  • 工具id(Tools.id的外键)

要更规范化,请将“工具”条目分隔到第三个表中

木凳:

  • id(主要)
  • woodsdata_id(外键,与woodsdata主键相关)

    • 我的建议是把所有东西放在一张桌子上。这样,在创建条目时,您将只需要插入一组数据

      如果您有两个表,则需要更新两个表(如果它们是具有主键的sql server表,则为聚集索引)。这需要额外的努力

      只要每次从表中选择时确实需要所有数据(tools1..50),那么我认为最好使用一个表


      最好的解决办法是尝试两种方法并衡量结果。这两种方式都可能没有什么不同。

      为什么不建立一个工具表,1-50(也可以很容易地扩展),然后在工具和木材之间建立一个查找表作为woodsdata?因为这不是我的项目,我没有做它。。。一个什么都不知道的老混蛋。。。现在我不得不这样离开它,但我想看看人们在做什么。。。上面那两个有什么区别吗?我想不是……哈哈哈。。。把你自己重新命名为“向下投票者”!请:普弗托尔,否决票很可能是因为这是一个措辞拙劣的问题,就目前的情况而言。您想知道是将该实体拆分为两个表还是将其保存在一个表中,但数据模型本身却迫切需要标准化。@Jeffrey Kemp问题是对人进行抽样!如果它让你或其他什么东西洗澡,请关闭窗口/选项卡!我需要的事情已经解决了,现在不需要你们把一切都弄巧成拙了。如果可以,我会在讨论完所有问题后删除这个问题,但我不能!WDIEWTOYOk。但你会对一个糟糕的答案感到高兴吗?可能比看起来我做了坏事还要多:P我应该离开它!这是一个类似“有什么不同”的问题,而不是一个建议!那对我没什么帮助!那不是我的问题。。。我知道我可以这样做,这将是正确的事情,但我的问题还有其他1000个问题,所以我必须让它像现在一样。。。现在我唯一能改变的就是我的问题!啊,嗯,嗯。你没有帮忙P@FeRtoll那么你的问题的正确答案是:不管你是这样做还是那样做。@FeRtoll:如果你不愿意和/或不能正确地规范化数据,那么我就用你的第二个例子(所有数据都在一个表中).@Filburt我想这是一样的thing@JoeStefanelli所以我可以给他一张单选表。。。不需要两张桌子,是吗?不好:(…我的意思是它很好:)呵呵,但是。。。啊,在我的问题下读我的评论@弗托:谢谢你的澄清。下次你应该在问题的第一行写上“我知道这样做是错误的,但我坚持下去了”,这样你就不会得到900条回复了!