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

postgresql дизайн на база данни за електронна търговия

Само като погледнете обувките, имате едно цяло:обувки. Има два преки атрибута:размер и цвят. Домейнът на всеки от тези атрибути трябва да бъде строго дефиниран, което показва справочни таблици за тях. Има два непреки атрибута, цена и количество, но това са атрибути повече на всяка комбинация от размер/цвят, отколкото на самата обувка.

Това предполага една таблица с обекти:Обувки; две справочни таблици:размери и цветове; и една тристранна пресечна таблица:ShoeStyles:

create table ShoeStyles(
    ShoeID   int       not null,
    SizeID   smallint  not null,
    ColorID  char( 1 ) not null,
    Price    currency,
    Qty      int       not null default 0,
    constraint FK_ShoeStyles_Shoe foreign key references Shoes( ID ),
    constraint FK_ShoeStyles_Size foreign key references Sizes( ID ),
    constraint FK_ShoeStyles_Color foreign key references Colors( ID ),
    constraint PK_ShoeStyles primary key( ShoeID, SizeID, ColorID )
);

Така например комбинацията („Penny Loafer“, „10 1/2“, „Tan“) ще има определена цена и количество на ръка. Размерът 11 Tan ще има собствена цена и количество, както и 10 1/2 Burgandy.

Бих препоръчал изглед, който обединява таблиците и представя резултатите в по-използваема форма, както е показано по-горе, вместо, да речем, (15, 4, 3, 45.00, 175). Тригерите в изгледа могат да позволят целия достъп на приложението през изгледа, така че приложението да остане агностично по отношение на физическото оформление на данните. Такива изгледи са изключително мощен инструмент, който значително допринася за устойчивостта и поддръжката на основните данни и на самото приложение, но които се използват крайно недостатъчно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres Array Append &Array Length за „Array Push“

  2. Postgres - ГРЕШКА:подготвеният оператор S_1 вече съществува

  3. Преобразувайте съхранена процедура на SQL Server в съхранена процедура на PostgreSQL

  4. Функции на метода за архивиране на PostgreSQL в AWS S3

  5. date_trunc 5 минути интервал в PostgreSQL