DB TBL
DB TBL
28 7:03 PM
Database Tables
•. Products Table
purpose: Stores information about the products listed by farmers.
columns:
1. product_id (INT, PRIMARY KEY, AUTO_INCREMENT)
2. farmer_id (INT, FOREIGN KEY referencing farmers.farmer_id)
3. product_name (VARCHAR)
4. description (TEXT, NULLABLE)
5. category (VARCHAR)
6. unit (VARCHAR, e.g., kg, piece, bunch)
7. price_per_unit (DECIMAL)
8. available_quantity (DECIMAL)
9. image_url (VARCHAR, NULLABLE)
10 expiry_date (DATE, NULLABLE)
11. organic (BOOLEAN, DEFAULT FALSE)
•. Orders Table
purpose: Stores order details.
columns:
1. order_id (INT, PRIMARY KEY, AUTO_INCREMENT)
2. consumer_id (INT, FOREIGN KEY referencing users.user_id)
3. farmer_id (INT, FOREIGN KEY referencing farmers.farmer_id)
4. retailer_id (INT, NULLABLE, FOREIGN KEY referencing retailers.retailer_id)
5. order_date (TIMESTAMP, DEFAULT CURRENT_TIMESTAMP)
6. delivery_date (DATE, NULLABLE)
7. delivery_address (TEXT)
8. order_status (ENUM: 'pending', 'confirmed', 'shipped', 'delivered',
'cancelled', 'refunded')
9. total_amount (DECIMAL)
•. OrderItems Table
purpose: Stores individual items within an order.
columns:
1. order_item_id (INT, PRIMARY KEY, AUTO_INCREMENT)
2. order_id (INT, FOREIGN KEY referencing orders.order_id)
3. product_id (INT, FOREIGN KEY referencing products.product_id)
4. quantity (DECIMAL)
5. unit_price (DECIMAL)
6. subtotal (DECIMAL)
• . Payments Table
purpose: Stores payment transaction details.
columns:
1. payment_id (INT, PRIMARY KEY, AUTO_INCREMENT)
2. order_id (INT, FOREIGN KEY referencing orders.order_id)
3. payment_date (TIMESTAMP, DEFAULT CURRENT_TIMESTAMP)
4. payment_method (VARCHAR)
5. transaction_id (VARCHAR)
6. payment_status (ENUM: 'pending', 'success', 'failed')
7. payment_amount (DECIMAL)
•. WasteManagement Table
purpose: Stores information related to waste management.
columns:
1. waste_id (INT, PRIMARY KEY, AUTO_INCREMENT)
2. farmer_id (INT, FOREIGN KEY referencing farmers.farmer_id)
3. waste_type (VARCHAR)
4. quantity (DECIMAL)
5. unit (VARCHAR)
6. description (TEXT, NULLABLE)
7. pickup_date (DATE, NULLABLE)
8. pickup_status (ENUM: 'requested', 'scheduled', 'collected', 'disposed')
•. . Reviews Table
purpose: Stores product and farmer reviews.
columns:
1. review_id (INT, PRIMARY KEY, AUTO_INCREMENT)
2. product_id (INT, FOREIGN KEY referencing products.product_id, NULLABLE)
3. farmer_id (INT, FOREIGN KEY referencing farmers.farmer_id, NULLABLE)
4. consumer_id (INT, FOREIGN KEY referencing users.user_id)
5. rating (INT)
6. comment (TEXT, NULLABLE)
7. review_date (TIMESTAMP, DEFAULT CURRENT_TIMESTAMP)