sql >> Database teknologi >  >> RDS >> Mysql

MySQL design med dynamisk antal felter

C) brug en normal form ; brug flere rækker med passende taster. et eksempel:

mysql> SELECT * FROM blah;
+----+-----+-----------+
| K  | grp | name      |
+----+-----+-----------+
|  1 |   1 | foo       |
|  2 |   1 | bar       |
|  3 |   2 | hydrogen  |
|  4 |   4 | dasher    |
|  5 |   2 | helium    |
|  6 |   2 | lithium   |
|  7 |   4 | dancer    |
|  8 |   3 | winken    |
|  9 |   4 | prancer   |
| 10 |   2 | beryllium |
| 11 |   1 | baz       |
| 12 |   3 | blinken   |
| 13 |   4 | vixen     |
| 14 |   1 | quux      |
| 15 |   4 | comet     |
| 16 |   2 | boron     |
| 17 |   4 | cupid     |
| 18 |   4 | donner    |
| 19 |   4 | blitzen   |
| 20 |   3 | nod       |
| 21 |   4 | rudolph   |
+----+-----+-----------+
21 rows in set (0.00 sec)

Dette er tabellen, jeg postede i dette andet spørgsmål om group_concat . Du vil bemærke, at der er en unik nøgle K for hver række. Der er en anden nøgle grp som repræsenterer hver kategori. Det resterende felt repræsenterer et kategorimedlem, og der kan være variable antal af disse pr. kategori.



  1. Er der ulemper ved at bruge en generisk varchar(255) til alle tekstbaserede felter?

  2. Hvad er forskellen mellem at bruge INDEX vs KEY i MySQL?

  3. Oprettelse af flere sider fra sql-forespørgsel

  4. Sådan finder og erstatter du tekst i MySQL-database ved hjælp af SQL