gpt4 book ai didi

php - 创建 Entity Framework SQL表结构

转载 作者:行者123 更新时间:2023-11-29 20:55:57 27 4
gpt4 key购买 nike

在过去的几年里,我一直致力于开发自己的轻量级 PHP CMS,并将其用于我的个人项目。它缺少的一件事是一个简单的数据库解决方案。

我希望创建一个简单的内容类型数据库框架,在其中我可以指定新类型(用户、书籍、事件等),然后能够自动加载与其相关的所有内容。

对于某些内容类型,可能有些字段只能有 1 个值,有些字段可以有零到多个值,因此我将为这些字段使用一个新表。举个例子:

table: event
columns: id, name, description, date

table: event_people:
columns: id_event, id_user

table: event_pictures:
columns: id_event, picture

事件将有一堆包含描述等值的字段,但也可能有一堆图片和参加事件的人。

我希望能够创建一个通用 PHP 类来加载内容类型的所有信息。我当前的思考过程是创建实体加载器函数,我可以给它一个 id 和类型:

Entity:load($id, "event");

由此,我将获取所有带有“event”前缀的表,使用传入的 ID 加载所有数据,然后将其存储在多维数组中。我觉得可能有一种更有效的方法。我不想在某个地方有一个指定所有内容类型及其子表的配置文件,因为我希望能够添加一个新的子表并让它自动选择它。

是否有办法直接将这种关系存储在 MySQL 表中?我不做很多数据库工作,而且我最近才开始使用外键(真是救星)。我是否可以更有效地查看哪些表具有与事件表中的 id 列相关的外键,如果是这样,将如何完成?我也愿意接受存储此信息的不同方式。

注意:我这样做只是为了好玩,所以请不要推荐我使用任何预制框架。我想自己创建这个。

最佳答案

我认为您搜索具有前缀名称事件的所有表的方法是明智的。我认为更有效的唯一方法是拥有一个可以查询的“entity_relationship”表。它将允许您灵活地进行命名约定,避免命名冲突,并且此查找应该比模式匹配搜索更有效。

然后,每当添加具有自己的表的新对象类型时,您就可以在关系表上创建一个条目。

INSERT INTO entity_relationship VALUES 
('event','event_people'),
('event','event_pictures'),
('event','event_documents'),
('event','event_performers');

关于php - 创建 Entity Framework SQL表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37631805/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com