sql-最佳设计实践表
我需要创建一个系统,用户可以在其中添加猫或狗,但我不知道如何设计表格来处理它 首先:sql-最佳设计实践表,sql,Sql,我需要创建一个系统,用户可以在其中添加猫或狗,但我不知道如何设计表格来处理它 首先: 用户可以添加狗和猫 狗和猫需要一些不同的列 他们每个人都有一个种族(作为人类,我不知道这是否正确) 例如,对于狗,我需要2个特定字段,对于猫,我需要其他2个特定字段,然后我有大约5/6个共享字段 哪一个是最佳实践?两个不同的表或只有一个表,其中一列名为type,其中: 类型=1是狗 类型=2是类别 然后设置NULL我不需要的特定字段 同样的问题也适用于狗的种族和猫的种族……最好是一个单独的表格,其中存储所有的种
type
,其中:
类型=1是狗类型=2是类别
然后设置
NULL
我不需要的特定字段
同样的问题也适用于狗的种族和猫的种族……最好是一个单独的表格,其中存储所有的种族,并用类型列将它们分开?
或者两个不同的表格是正确的方法?我会说:从简单开始。一个用于动物的表具有类型列(它可以是显式的varchar,如“DOG”和“CAT”),一个用于种族的表也具有类型列。在上面插入ORM会更容易,如果必须运行一些统计数据,查询也会更容易
唯一可能出现的问题是:
-越来越多的列将是一个动物独有的,这将导致一些繁重的重构
-如果应用程序使用一个包含所有列的表来处理数据,则Pet的类型列与其竞争类型列之间可能存在不匹配,只要没有太多的空/浪费列即可。就我个人而言,我更希望有一个宠物表和另外两个猫/狗表共享列(PK/FK=PetID链接到宠物表)。无论哪种方式,无论你选择什么,都要在应用程序的其余部分保持一致。