gpt4 book ai didi

mysql - 如何在数据库中创建动态 'types'

转载 作者:行者123 更新时间:2023-11-29 00:42:15 24 4
gpt4 key购买 nike

我的问题与带有 mysql 数据库的 php 网站有关。

目前在数据库中我们有一个“ token ”实体

token 可以包含 0 个或多个“对象”实体,并且这些对象中的每一个都可以是 x、y、z 类型

所以

----------
| Token |
|--------|

--------------
|token_object|
| |
|tokenID |
|objectID |
--------------

------------
| object |
| |
|objectType|
------------

------------ --------- ---------
| objectX | |objectY| |objectZ|
| | | | | |
------------ --------- ---------

现在这个工作正常了,因为当我想要一个对象的数据时,由于我们的缓存系统的性质,当时几乎总是一个对象,我可以只进行两个查询来从对象和 objectX 获取数据/Y/Z

(SELECT * FROM object WHERE id = $id) 

switch($objectType)
case 'objectX':
SELECT * from ObjectX WHERE id = $id
case 'objectY':
etc etc..

但现在我被要求允许网站的用户创建新的对象类型,即 objectA/B 等。

我可以为每个新的对象类型创建一个新的 objectXn 表,并为 objectType 选择一个合适的值

(SELECT * FROM $objectType WHERE blabla)

但这似乎不是一个非常干净的解决方案,尤其是新表的创建

有没有更好的解决方案?

值得注意的是,我希望有很多与 token 相关的对象,并且不会/几乎永远不会创建额外的对象类型

最佳答案

你究竟在存储什么?它是否需要针对它的复杂查询,或者您是否需要通过 id 进行简单的对象存储?在后一种情况下,您可以创建一个具有 ID、类型和数据的表,其中数据是您可以在代码中恢复的序列化对象(例如,将对象存储为 JSON,并使用存储的数据对其进行反序列化)类型和数据)。如果这不能满足您的需求,请在您的问题中提供更多背景信息。

关于mysql - 如何在数据库中创建动态 'types',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11800314/

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