使用Array与另一个表的关系

时间:2012-12-11 11:20:58

标签: php mysql sql database-design yii

如何在数据库中使用与数据库中另一个表相关的数组?

用户表:

Name | languages_id
Anas | 1,2,3

语言表:

id | language
1  | English
2  | Arabic

它的工作与否?!你知道我在yii中可以用什么来做这件事吗?

2 个答案:

答案 0 :(得分:3)

不要这样做。

请勿将多个项目存储为逗号分隔列it is really bad

您应该保留表normalized,方法是在UsersLanguagesUSERS表之间创建一个新表Languages作为多对多表。像这样S :::

<强> Users

  • UserId
  • UserName
  • ......其他细节。

<强> Languages

  • LanguageId
  • LanguageName
  • ...

<强> UserLanguages

  • UserId外键引用Users(UserId)
  • LanguageId外国kery参考Languages(LanguageId)

答案 1 :(得分:1)

您可以使用FIND_IN_SET

SELECT
    name,
    language
FROM
    users
INNER JOIN
    languages ON FIND_IN_SET(languages.id, languages_id) != 0
GROUP BY
    name

虽然Mahmoud Gamal的评论可能是更好的方式。