Database 数据库,表继承?

Database 数据库,表继承?,database,schema,Database,Schema,这是关于数据库结构的。(遗产) 假设你有Place和Restaurant和Cafe是Place的两个子类型 您可以创建一个Place表来保存子类型的公共信息。 并创建一个外键以连接到retaarant或Cafe实例 或 你可以在餐厅和咖啡馆 我来自Django,很多人似乎更喜欢2而不是1 是否有一个引人注目的场景,你应该选择一个而不是另一个 我认为我需要#1的一个场景是,将所有位置一起排序。(我们可以使用#2吗?我想我会选择#2,因为您不必考虑关系和外键,而且模型本身是完整的,所以您可以复制数据

这是关于数据库结构的。(遗产)

假设你有
Place
Restaurant
Cafe
是Place的两个子类型

  • 您可以创建一个
    Place
    表来保存子类型的公共信息。
    并创建一个外键以连接到
    retaarant
    Cafe
    实例
  • 你可以在
    餐厅
    咖啡馆
  • 我来自Django,很多人似乎更喜欢2而不是1

    是否有一个引人注目的场景,你应该选择一个而不是另一个

    我认为我需要#1的一个场景是,将所有
    位置
    一起排序。(我们可以使用#2吗?

    我想我会选择#2,因为您不必考虑关系和外键,而且模型本身是完整的,所以您可以复制数据库并将其用于其他用途。 此外,您只需查询一个表而不是两个表

    如果需要对餐厅和咖啡馆进行排序,可以使用SQL联合运算符。 假设您有两个简单的表:

    restaurant
    id | name         | likes
    -------------------------
    1  | Steakhouse   | 5
    2  | Italian Food | 3
    
    cafe
    id | name      | likes
    --------------------------
    1  | Starbucks | 0
    
    您可以使用UNION运算符查询它们,如下所示:

    SELECT * FROM cafe
    UNION
    SELECT * FROM restaurant
    ORDER BY likes DESC
    

    这将返回一份由喜欢的人订购的咖啡馆和餐馆的列表,就好像它们来自同一张桌子一样。

    对不起,我听不懂你的最后一句话。你们如何用sql中的#2按相似计数对餐厅和咖啡馆进行分类?对不起,我想说的是联盟不加入。我将编辑我的回答您使用的是哪种DBMS?Postgres本机支持表继承。我正在使用Postgres,duh。