我有一个专栏 组 。 群组
具有存储在group_types中的不同类型(买方,卖方,裁判)。只有当该组是买方类型时,它才具有另一种(更专门)的类型,例如电气和机械类型。
我对如何将其存储在数据库中感到有些困惑。
有人可以建议我一个数据库结构吗?
谢谢
将您的存储group_types
为层次结构表(带有nested sets
或parent-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年将其引入。 在第三代包括对象关系数据库管理系统和面向对象的数据库管理系统。 数据库的历史时间表如下所示- 基于文件的