sql - 最佳设计实践表

时间:2014-01-13 16:40:31

标签: sql

我需要创建一个用户可以添加猫或狗的系统,但我不知道如何设计表来处理它。

首先:

  1. 用户可以添加狗和猫
  2. 狗和猫需要一些不同的栏目
  3. 他们每个人都有种族(作为人类,我不知道这是否正确)
  4. 例如对于狗我需要2个特定的字段,对于猫,我需要其他2个特定字段,然后我有大约5/6个共享字段。

    哪种做法最好?两个不同的表或只有一个名为type的列,其中:

    type = 1是狗 type = 2是cat
    并设置NULL我不需要的特定字段?

    同样的问题是针对狗的比赛和猫的比赛...更好的是一张桌子,其中存储所有这些并用type列分隔它们?
    或者两个不同的表是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

我会说:开始简单。一个表用于具有类型列的动物(它可以是显式varchar,如'DOG'和'CAT'),一个表用于比赛,还有一个类型列。在这之上插入ORM会更容易,如果你必须运行一些统计数据,则更容易查询。

唯一可能的问题是: - 越来越多的列将是一种动物独有的,导致一些重型重构 - 如果应用程序混淆数据

,则Pet的TYPE列与其Race之间可能不匹配