Mysql
 sql >> база данни >  >> RDS >> Mysql

Проектиране на релационна база данни (MySQL)

преди да отговоря на вашите въпроси... мисля, че user_id не трябва да е в таблицата с таланти... основната идея тук е, че "за 1 талант имате много потребители, а за един потребител имате няколко таланта".. така че връзката трябва да бъде NxN, ще ви трябва междинна маса

вижте:много до много

сега

ако искате да направите нещо динамично (добавяне или премахване на субталанти), можете да използвате рекурсивна връзка. Това е таблица, която е свързана сама със себе си

TABLE TALENT
-------------
id  PK
label
parent_id PK FK (a foreign key to table Talent)

вижте:рекурсивни асоциации

ако използвате модела преди, може да е кошмар да правите заявки, тъй като вашата таблица Talents вече е ДЪРВО, което може да съдържа няколко нива.. може да искате да се ограничите до определен брой нива, които искате във вашата Таблицата на талантите предполагам, че две са достатъчни.. по този начин вашите заявки ще бъдат по-лесни

при използване на рекурсивни отношения... външният ключ трябва да позволява нулеви стойности, защото талантите от най-високите нива няма да имат parent_id...

Късмет! :)

РЕДАКТИРАНЕ: добре.. създадох модела.. за да го обясня по-добре

Редактиране Втори модел (под формата на коледно дърво =D ) Обърнете внимание, че връзката между модел и талант и актьор и талант е релация 1x1, има различни начини да направите това (същата връзка в коментарите )

за да разберете дали потребителят има таланти.. присъединете се към трите таблици в заявката =)надявам се това да помогне



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо не мога да вмъкна 10 цифри, когато колоната ми е INT(10)

  2. БРОЙ MySQL РАЗЛИЧЕН

  3. Намиране на функционална зависимост

  4. Управление на потребителски акаунт, роли, разрешения, удостоверяване на PHP и MySQL -- Част 5

  5. LOAD DATA LOCAL INFILE не работи от php 5.5, използвайки PDO