Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dobry projekt bazy danych, zmienna liczba atrybutów

Opcje 1, 2 i 3 mają jedną bardzo poważną wadę:musisz zmodyfikować podstawowy schemat tabeli, gdy ktoś wymyśli nowy atrybut. W przypadku Opcji 1 problem jest spotęgowany możliwością wprowadzenia nowego typu sprzętu. Na ile jesteś pewien, że zestaw atrybutów jest stały na zawsze? Jak bardzo będziesz zadowolony, gdy wyłączysz przerwy lub powiesz klientowi, że nie, nie możesz mieć nowego atrybutu?

Jeśli bardzo prawdopodobne jest, że będziesz wykonywać zapytania na podstawie typowych atrybutów, możesz spróbować hybrydy 3 i 4, z kreską 2 rzuconą w podziale na typ atrybutu, a nie typ wyposażenia, co wydaje się znacznie bardziej niestabilne. Opcja 4, jeśli dobrze rozumiem, to normalna wersja opcji 1, która rozwiązuje wszystkie związane z nią problemy (rzadkość i kruchość).

INVENTORY( id*, model, manufacturer, serial )
ATTRIBUTE( id*, name, type, description )
INVENTORY_FACT_STRING( inv_id*, attr_id*, value )
INVENTORY_FACT_NUMBER( inv_id*, attr_id*, value )
INVENTORY_FACT_LIST_STRING( inv_id*, attr_id*, ordinal*, value )

itp.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podstawowa pula połączeń DB z Javą i Tomcat 7

  2. java.sql.SQLException Indeks parametru poza zakresem (1> liczba parametrów, czyli 0)

  3. Jak usunąć domyślną wartość kolumny w MySQL?

  4. Oblicza różnicę między dwiema datami w PHP

  5. PHP PDO SQL zwraca tylko jeden wiersz danych zamiast wszystkich wierszy