Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 扩展现有的数据库接口_Mysql_Database - Fatal编程技术网

Mysql 扩展现有的数据库接口

Mysql 扩展现有的数据库接口,mysql,database,Mysql,Database,我正在扩展已经投入生产两年的现有项目,我需要扩展一些现有的实体,我们称它们为a、b、c、d 当我现在考虑数据库的设计时,所有的a、b、c、d都应该有某种继承,但是在这一点上改变模式太多是不可能的 现在所有的a、b、c、d都有自己的主键,但它们都必须实现某些接口,如“bookmarkable”、“taggable”、“viewable”等 继续像这样创建表有意义吗 a_保存、b_保存、c_保存、d_保存或a_标记、b_标记、c_标记等来建模关系?但话说回来。。我必须创建相同的代码来处理每个场景,其

我正在扩展已经投入生产两年的现有项目,我需要扩展一些现有的实体,我们称它们为a、b、c、d

当我现在考虑数据库的设计时,所有的a、b、c、d都应该有某种继承,但是在这一点上改变模式太多是不可能的

现在所有的a、b、c、d都有自己的主键,但它们都必须实现某些接口,如“bookmarkable”、“taggable”、“viewable”等

继续像这样创建表有意义吗 a_保存、b_保存、c_保存、d_保存或a_标记、b_标记、c_标记等来建模关系?但话说回来。。我必须创建相同的代码来处理每个场景,其中唯一的区别是表名

我认为更好的解决方案是创建一个新表——让我们称之为“对象”,并尝试对一些继承进行建模——为每个实体在“对象”表中创建一个条目,并将该id存储在其表中,然后创建一个关系表来映射对象和标记关系


这听起来像是可行的解决方案,还是可能容易出错,并且会影响我的功能?

与您的第二个想法类似的解决方案是创建一个表,通过组合键(实体类型,实体ID)映射扩展。查看这里的示例模式和查询:

查看视图:我认为您可以用视图表示所需内容,并将其用于新操作