我想创建一个结构,其中有一个带有用户标识和用户名的表,每个用户标识获取它自己的表。我想知道是否有办法添加第三列,其类型是它自己的表。如果不是最好的方法是什么。
答案 0 :(得分:1)
我认为保存用户属性的最佳方法是创建一个usermeta
表。注意以下结构:
user_id | user_name | user_mail
--------------------------------
1 | ali | me@ali.com
2 | mahdi | me@mahdi.ir
meta_id | user_id | meta_key | meta_value
-----------------------------------------
10 | 1 | points | 10
11 | 1 | address | london
12 | 2 | address | iran
13 | 2 | is_vip | true
在此表单中,您可以为任何所需的用户添加任何属性。它可以灵活地保存没有预定义的属性。在这种结构中,你没有数据冗余。
您也可以使用dynamic column。
答案 1 :(得分:0)
我认为这不是一件好事。您最好为您的用户创建一个表,然后再创建一个包含UserId列的设置表。
这样,您可以使用连接引用用户特定的属性。 例如:
具有列的用户:UserId和用户名
包含列的表设置:UserId,Setting,Value
如果你想要那些组合,你可以使用这个sql:
SELECT Users.UserId, Username, Setting, Value
FROM Users
INNER JOIN Settings ON Settings.UserId=Users.UserId