Advertisement
desislava_topuzakova

01. Table Design

Feb 5th, 2024
302
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. CREATE DATABASE real_estates;
  2.  
  3. -- 01. Table Design
  4.  
  5. -- CITIES
  6. CREATE TABLE cities
  7. (
  8. id INT AUTO_INCREMENT PRIMARY KEY,
  9. name VARCHAR(60) NOT NULL UNIQUE
  10. );
  11.  
  12. -- property_types
  13. CREATE TABLE property_types
  14. (
  15. id INT AUTO_INCREMENT,
  16. type VARCHAR(40) NOT NULL UNIQUE,
  17. description TEXT,
  18. PRIMARY KEY(id)
  19. );
  20.  
  21. -- PROPERTIES
  22. CREATE TABLE properties
  23. (
  24. id INT AUTO_INCREMENT PRIMARY KEY,
  25. address VARCHAR(80) NOT NULL UNIQUE,
  26. price DECIMAL(19, 2) NOT NULL,
  27. area DECIMAL (19, 2),
  28. property_type_id INT,
  29. city_id INT,
  30. FOREIGN KEY(property_type_id) REFERENCES property_types(id),
  31. FOREIGN KEY(city_id) REFERENCES cities(id)
  32. );
  33.  
  34. -- AGENTS
  35. CREATE TABLE agents
  36. (
  37. id INT AUTO_INCREMENT PRIMARY KEY,
  38. first_name VARCHAR(40) NOT NULL,
  39. last_name VARCHAR(40) NOT NULL,
  40. phone VARCHAR(20) NOT NULL UNIQUE,
  41. email VARCHAR(50) NOT NULL UNIQUE,
  42. city_id INT,
  43. FOREIGN KEY (city_id) REFERENCES cities(id)
  44. );
  45.  
  46. -- BUYERS
  47. CREATE TABLE buyers
  48. (
  49. id INT AUTO_INCREMENT PRIMARY KEY,
  50. first_name VARCHAR(40) NOT NULL,
  51. last_name VARCHAR(40) NOT NULL,
  52. phone VARCHAR(20) NOT NULL UNIQUE,
  53. email VARCHAR(50) NOT NULL UNIQUE,
  54. city_id INT,
  55. FOREIGN KEY (city_id) REFERENCES cities(id)
  56. );
  57.  
  58. -- property_offers
  59. CREATE TABLE property_offers
  60. (
  61. property_id INT NOT NULL,
  62. agent_id INT NOT NULL,
  63. price DECIMAL(19, 2) NOT NULL,
  64. offer_datetime DATETIME,
  65. CONSTRAINT `fk_offers_with_properties` FOREIGN KEY(property_id) REFERENCES properties(id),
  66. CONSTRAINT `fk_offers_with_agents` FOREIGN KEY(agent_id) REFERENCES agents(id)
  67. );
  68.  
  69. -- property_transactions
  70. CREATE TABLE property_transactions
  71. (
  72. id INT AUTO_INCREMENT PRIMARY KEY,
  73. property_id INT NOT NULL,
  74. buyer_id INT NOT NULL,
  75. transaction_date DATE,
  76. bank_name VARCHAR(30),
  77. iban VARCHAR(40) UNIQUE,
  78. is_successful BOOLEAN,
  79. FOREIGN KEY (property_id) REFERENCES properties (id),
  80. FOREIGN KEY (buyer_id) REFERENCES buyers (id)
  81. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement