私は、ユーザIDとユーザ名を持つテーブルがあり、各ユーザIDがそれ自身のテーブルを取得する構造を作成したいと思います。 3番目の列を追加する方法があるかどうか疑問に思っていました。そうでない場合は、これを行う最善の方法です。テーブル内のMySQLの「サブテーブル」?
答えて
私はこれが良いことだとは思わない。あなたのユーザーのためのテーブルを作成し、次にUserId列を持つ設定テーブルを作成することをお勧めします。
この方法で、結合を使用してユーザー固有のプロパティを参照できます。列を持つ
表のユーザー:ユーザーIDとユーザー名
列を持つテーブルの設定:ユーザーID、設定、値
あなたは、あなたがこのSQLを使用することができます組み合わせたものを取得したい場合:
たとえばSELECT Users.UserId, Username, Setting, Value
FROM Users
INNER JOIN Settings ON Settings.UserId=Users.UserId
ユーザー属性を保存する最も良い方法は、usermeta
テーブルを作成することです。次の構造への注意:
ユーザー:
user_id | user_name | user_mail
--------------------------------
1 | ali | [email protected]
2 | mahdi | [email protected]
Usermeta
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も使用できます。
FWIW、EAVを使用すると、データ型に応じてテーブルを分割するのが好きなので、日付型のテーブル、整数型のテーブル、および文字列型のテーブルがあります。 – Strawberry
これはWordPressでもやっている方法です。それは多くの場合に行くための素晴らしい方法です。 – Blackbam
@Strawberryそれは正しいです。それは一般的な構造です。データ型を考慮する場合、マルチusermetaテーブルを作成してください! – MahdiY
- 1. サブテーブルの結果をサブテーブル
- 2. MySQLサブテーブル別クエリの制限クエリ
- 3. テーブル内またはテーブル内のMySQLテーブル
- 4. MySQLのテーブル内のテーブル?
- 5. テーブル内のmysqlフィールド
- 6. MySQLテーブル内のランク
- 7. MYSQL:列としてサブテーブルを取得
- 8. テーブル内のMySQLのdudエントリ
- 9. mysqlテーブル内の結合
- 10. テーブル内のMySQL Foreach行
- 11. サブテーブルの実装(テーブルへの表示):クラス関係の設計
- 12. JSFでデータテーブル内にサブテーブルをバインドする
- 13. C#の.rdlcレポートに複数のサブテーブルがあるテーブル
- 14. 親テーブルのサブテーブル<tr>の作成方法<tr>?
- 15. mysqlから複数のサブテーブルを削除する方法は?
- 16. MySQL:サブテーブル(サブクエリ)を使用した毎週統計の集計
- 17. テーブル内の要素はどのように選択されますが、そのテーブル内のサブテーブル内の要素はありません。
- 18. 角材2のMDテーブルにサブテーブルを作成する方法は?
- 19. サブテーブルを使用して別のテーブルを使用してテーブルを更新する
- 20. のMySQL:1テーブル内の1つの文
- 21. テーブル内のパーティションの最大数MYSQL 5.6.10
- 22. のMySQL同じテーブル内のSUMとUPDATE
- 23. 同じテーブル内のレコードのMySQLクエリ
- 24. 内部の結合複数テーブルのmysql
- 25. リッチの各ループ用:サブテーブル
- 26. mysql内部結合テーブル1とテーブル2
- 27. MySQL他の2つのテーブルのテーブル内の関連フィールドの数
- 28. MYSQL同じテーブル内からの更新
- 29. 悪い文字utf8_unicode_ci内MySQLのテーブル
- 30. 2テーブルのMySql内部結合
このアイデアは貧弱なデザインです。これらの「他のテーブル」に格納する内容を説明し、データベースの設計を改善するためにお手伝いします。 –
useridを外部キーとしてテーブルを作成します。 – Filburt
正規化を参照してください – Strawberry