mysql根据元素数添加列

时间:2013-03-09 06:04:52

标签: php mysql

我有一个用户的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");
}

只是想澄清我是在正确的轨道上,或者我是否以错误的方式处理事情。

1 个答案:

答案 0 :(得分:0)

这不是你正在尝试做的事情的正确方法。这是通常的方式:  用户表:用户ID,名称,您可能想要的其他内容......  属性表:AttID,名称,您可能想要的其他东西......  UserAttributes表:UserID,AttID,AttValue

您将UserAttributes.UserID限制为Users.UserID上的外键。您将UserAttributes.AttID限制为Attributes.AttID上的外键。要获取用户的属性列表,请使用:select u.name as username,a.name as attname,ua.attvalue as attvalue from users u join userattributes ua on u.userid = ua.userid join a attribute a on ua .attid = a.attid其中u.userid = USER_ID_TO_LOOK_FOR