Php mysql根据元素数量添加列

Php mysql根据元素数量添加列,php,mysql,Php,Mysql,我有一个mysql用户表和一个特定属性 我有第三个表来组合这两个表(具有X个属性的用户)。每个属性都是一个单独的元素/列 我的问题是,;如果有一个用户有X个元素,另一个用户有X+1个元素,我如何告诉数据库向表中添加+1(或根据需要添加任意数量的列) 会不会是这样的 if(table_columns < attribute_columns) { mysqli_query($db,"ADD 'X amount' NEW COLUMN && ADD attributes"); }

我有一个mysql用户表和一个特定属性

我有第三个表来组合这两个表(具有X个属性的用户)。每个属性都是一个单独的元素/列

我的问题是,;如果有一个用户有X个元素,另一个用户有X+1个元素,我如何告诉数据库向表中添加+1(或根据需要添加任意数量的列)

会不会是这样的

if(table_columns < attribute_columns)
{
mysqli_query($db,"ADD 'X amount' NEW COLUMN && ADD attributes");
}
else
{
mysqli_query($db,"ADD attributes");
}
if(表列<属性列)
{
mysqli_查询($db,“添加‘X金额’新列和添加属性”);
}
其他的
{
mysqli_查询($db,“添加属性”);
}

我只是想澄清一下,我走的是对的,或者我是不是走错了路

这不是你想要做的事情的正确方式。通常是这样做的: 用户表:用户ID、名称、您可能需要的其他内容。。。 属性表:阁楼,名字,你可能想要的其他东西。。。 UserAttributes表:UserID、AttID、AttValue


您将把UserAttributes.UserID约束为Users.UserID上的外键。您将把UserAttributes.AttID约束为Attributes.AttID上的外键。要获取用户的属性列表,请使用:选择u.name作为用户名,a.name作为attname,ua.attvalue作为用户的attvalue u join userattributes ua on u.userid=ua.userid join attributes a on ua.attid=a.attid,其中u.userid=user_ID_To_LOOK_for

,在这个scanrio简单的创建一个表,其中包含例如5个字段。用户1有3个字段,其他字段应为空。其他用户将拥有所有字段。这就是应该怎么做的。你知道我是否可以阅读一些文档或教程?或者我可以键入一些搜索关键字来找到正确的位置。它通常被称为映射表。它用于两个集合之间的多对多关系。在google中输入“映射表”会带来很多关于如何以及为什么使用映射表的文章。