code_junkie

Database localization

Nov 11th, 2011
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. CREATE TABLE products
  2. (
  3. id serial NOT NULL,
  4. "name" character varying(255) NOT NULL,
  5. CONSTRAINT products_pkey PRIMARY KEY (id)
  6. )
  7.  
  8. CREATE TABLE products_l10n
  9. (
  10. product_id serial NOT NULL,
  11. "language" character(2) NOT NULL,
  12. "name" character varying(255) NOT NULL,
  13. CONSTRAINT products_l10n_pkey PRIMARY KEY (product_id, language),
  14. CONSTRAINT products_l10n_product_id_fkey FOREIGN KEY (product_id)
  15. REFERENCES products (id) MATCH SIMPLE
  16. ON UPDATE CASCADE ON DELETE CASCADE
  17. )
  18.  
  19. SELECT p.id, COALESCE(pl.name, p.name)
  20. from products p LEFT
  21. JOIN products_l10n pl ON p.id = pl.product_id AND language = 'de';
  22.  
  23. CREATE TABLE products_l10n
  24. (
  25. product_id serial NOT NULL,
  26. language_id int NOT NULL,
  27. "name" character varying(255) NOT NULL,
  28. CONSTRAINT products_l10n_pkey PRIMARY KEY (product_id, language),
  29. CONSTRAINT products_l10n_product_id_fkey FOREIGN KEY (product_id)
  30. REFERENCES products (id) MATCH SIMPLE
  31. ON UPDATE CASCADE ON DELETE CASCADE
  32. CONSTRAINT products_l10n_language_id_fkey FOREIGN KEY (language_id)
  33. REFERENCES languages (id) MATCH SIMPLE
  34. ON UPDATE CASCADE ON DELETE CASCADE
  35. )
  36.  
  37. CREATE TABLE languages
  38. )
  39. id serial not null
  40. "language" character(2) NOT NULL
  41. )
Add Comment
Please, Sign In to add comment