Database design 了解数据库系统需求规范

Database design 了解数据库系统需求规范,database-design,requirements,Database Design,Requirements,假设您在需求文档中有以下语句 The system has to keep track of the names of publishers, their addresses and telephone numbers 这是否意味着每个出版商可以有多个地址和多个电话号码 又是这样 Information about the books’ names and author(s) is maintained in the database. 这是否意味着每本书可以有多个作者 假设这不是一个真正的

假设您在需求文档中有以下语句

The system has to keep track of the names of publishers, their
addresses and telephone numbers
这是否意味着每个出版商可以有多个地址和多个电话号码

又是这样

Information about the books’ names and author(s) is maintained in the database.
这是否意味着每本书可以有多个作者

假设这不是一个真正的系统(无法从真正的客户那里得到澄清),我应该做什么默认决定

这可能与编程无关,我本来打算在英文stackexchange网站上发布这篇文章,但我认为这是正确的地方,因为我更关心数据库设计


提前感谢

英语常常模棱两可,所以你无法100%确定第一种情况下的意思;你必须用你的常识想出一个解决办法。然而,我确实认为,在第二种情况下,使用“作者”而不是“作者”确实清楚地表明,一本书可能有不止一位作者——它可以被理解为“作者”的缩写。

如果你能将其编码,那么每个出版商就有可能有单独的地址和编号。但是,根据spec文档,只有books authors字段需要有多个作者

澄清:


  • 一个发布者应该只有一个地址和一个电话号码
  • 一本书应该有一个标题和一个或多个作者

    • 自然语言规范几乎必然是模棱两可的。这就是为什么提出比自然语言更精确的“设计规范语言”是一个永恒的尝试。呃,UML,ORM(‘这个’ORM,不是‘那个’ORM),甚至是简单的数学公式:它们都是为了解决自然语言固有的歧义而发明的“非自然”语言

      这也是为什么“足够精确地固定规格”通常是一个多次迭代的迭代过程


      您可以做出假设,但您应该避免的是,在不与用户核实这些假设的情况下,将这些假设视为理所当然。用户应该是业务专家。

      当然,您必须从客户那里获得反馈。向他们提问是件好事。但是我假设你需要问最少的问题。。。。您确实需要在创建更灵活的设计方面犯错误。灵活的设计仍应满足不太灵活的要求;虽然可能需要更多的初始工作来创建。 向客户明确他们支付的灵活性程度。 常识在很多时候可能是正确的。。。直到它错了。假设一个人可以有多个地址的设计仍然适用于90%的情况,即一个人只有一个地址。我可以很容易地想象您的示例中需要为许多兄弟对象设计的场景。假设一对一的关系通常不是要假设的关系


      在您的特定示例中,情况可能与一般情况有所不同,但通常情况下,作者可以创建多本书,书籍可以有多个作者,书籍可以有多个出版商,出版商可以有多个地址,每个地址可以有多个电话号码

      “一个出版商应该只有一个地址和一个电话号码。”这正是你应该避免的一种错误:只是根据自己的感觉假设一些事情,只是想当然地认为这是理所当然的,而不必与“真实的”进行核对“商业专家。假设是所有错误的根源。没有必要在你的信息上签名;你(尼克)的名字已经出现在每一个名字下面。英语是模棱两可的,你最好用法语做事:-)