当前位置: 首页 > 面试题库 >

数据库模型结构

马才
2023-03-14
问题内容

我有一个专栏 群组
具有存储在group_types中的不同类型(买方,卖方,裁判)。只有当该组是买方类型时,它才具有另一种(更专门)的类型,例如电气和机械类型。

我对如何将其存储在数据库中感到有些困惑。

有人可以建议我一个数据库结构吗?

谢谢


问题答案:

将您的存储group_types为层次结构表(带有nested setsparent-child模型):

Parent-child

typeid parent name

1      0      Buyers
2      0      Sellers
3      0      Referee
4      1      Electrical
5      1      Mechanic
SELECT  *
FROM    mytable
WHERE   group IN
        (
        SELECT  typeid
        FROM    group_types
        START WITH
                typeid = 1
        CONNECT BY
                parent = PRIOR typeid
        )

将选择中的所有买家Oracle

Nested sets

typeid lower  upper  Name
1      1      2      Buyers
2      3      3      Sellers
3      4      4      Referee
4      1      1      Electrical
5      2      2      Mechanic
SELECT  *
FROM    group_types
JOIN    mytable
ON      group BETWEEN lower AND upper
WHERE   typeid = 1

将选择任何数据库中的所有买家。

Nested sets如果您不需要层次结构上的排序或频繁更新,则可以在任何地方实现且性能更高group_types

Parent-child可以轻松地在中实现,Oracle并且SQL Server只需花费一点点努力即可实现MySQL。它允许简单的结构更改和分层排序。

请参阅我的博客中有关如何实现该文章的文章MySQL

  • 中的分层查询MySQL


 类似资料:
  • 介绍 传统关系型数据库(MySQL)的模型,日常增删改查完全够用,支持复合主键、联合主键。 模型定义 喜闻乐见的对命名空间、类名无要求,只要按照规定写注解即可! @Entity 注解为定义实体类 @Table 注解为定义数据表 @Column 注解为定义字段 @DDL 定义表结构的 SQL 语句 建议使用模型生成工具:https://doc.imiphp.com/dev/generate/mode

  • 创建插件自定义模型 在插件model目录下创建PluginDemoModel.php文件,内容如下: <?php // +---------------------------------------------------------------------- // | ThinkCMF [ WE CAN DO IT MORE SIMPLE ] // +---------------------

  • 创建插件自定义模型 <?php namespace plugins\Demo\Model;//Demo插件英文名,改成你的插件英文就行了 use Common\Model\CommonModel;//继承CommonModel class PluginDemoModel extends CommonModel{ //Demo插件英文名,改成你的插件英文就行了,插件数据表最好加个plugin前缀再加

  • 创建插件自定义模型 在插件model目录下创建PluginDemoModel.php文件,内容如下: <?php // +---------------------------------------------------------------------- // | ThinkCMF [ WE CAN DO IT MORE SIMPLE ] // +---------------------

  • 模型在FuelPHP Web框架中起着重要作用。 它代表应用程序的业务实体。 它们由客户提供或从后端数据库中提取,根据业务规则进行操作并持久保存回数据库。 让我们在本章中了解模型以及它们如何与后端系统交互。 创建模型 在FuelPHP中,模型只是普通的PHP类,扩展了内置的Model类。 默认情况下,模型可以使用类似于控制器的Model_作为前缀,并且应该放在fuel/app/classes/mo

  • 本文向大家介绍数据模型和数据库的历史,包括了数据模型和数据库的历史的使用技巧和注意事项,需要的朋友参考一下 数据模型的历史已有三代DBMS- 分层系统是第一代DBMS。第一代还带有CODASYL系统。他们两个都是在1960年代推出的。 第二代包括关系模型。EFCodd博士于1970年将其引入。 在第三代包括对象关系数据库管理系统和面向对象的数据库管理系统。 数据库的历史时间表如下所示- 基于文件的