```sql
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL
);
CREATE TABLE fishing_data (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
weight FLOAT NOT NULL,
location VARCHAR(100) NOT NULL,
date DATETIME NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(id)
);
```
```sql
CREATE VIEW ranking AS
SELECT user_id, SUM(weight) as total_weight, COUNT(*) as fish_count
FROM fishing_data
GROUP BY user_id
ORDER BY total_weight DESC;
```