Proposed database changes
The dedicated project is connected. Database changes remain unapplied; nothing has been published.
The data model
| Table | Information |
|---|---|
| profiles | Account ID and public display name. No public emails. |
| user_roles | Separate, protected admin assignments. No self-promotion. |
| properties | Address, neighborhood, publication status, asking and previous sale prices, source links and financing status. |
| property_private_associations | Admin-only unverified listing associations. Excluded from public records and reads. |
| property_photos | Photo storage path, order, description and authorization confirmation. |
| comments | Property, author, optional parent reply, text, timestamp and moderation status. |
| property_reviews | Property, author, 1–5 star rating, written review, timestamps. Unique per author and property. Separate from comments. |
| comment_reports | Comment, reporter, reason and admin review status. |
Who can do what
- Visitors: read published properties, authorized photographs, visible comments and public display names.
- Registered users: comment and reply; delete only their own comments; update only their own display name; submit reports.
- Admins: create, edit, publish or delete properties; upload authorized photos; review reports and remove comments.
- Every permission is enforced by database policies—not just hidden buttons.
Property reviews
- Stored in their own table with their own permissions; never mixed with discussion comments.
- Visitors: read all reviews, the average rating and the review count without signing in.
- Signed-in users: create one review per property, and edit or delete only their own. A database uniqueness rule on author + property blocks duplicates.
- Rating must be a whole number from 1 to 5; written review required (suggested limit 2,000 characters).
- Admins: may remove reviews that violate guidelines.
- Displayed as community opinions, never as verified inspections, ownership experiences or professional assessments.
Financing accuracy
Loan types: conventional, FHA, VA, USDA, commercial, private/hard-money, cash purchase, other or unknown. Verification status is stored separately. Verified financing requires a supporting public document; unverified financing is clearly labeled. No loan type is inferred from a lien.
Private listing associations
The supplied short-term rental association remains unverified. Its reference is recorded only in the unapplied private setup proposal—not in public property information. After approval, a separate admin-only table will store the URL, evidence and verification status. The public site must never receive unverified association data.
Image storage
A dedicated property-photos bucket. Only admins upload or delete images. Visitors can access photos only for published properties. Every upload records authorization.
Accounts and moderation
Email and password registration with a public display name. Email confirmation remains enabled. The first admin must be explicitly designated; nobody can grant themselves admin access.
New comments appear immediately unless an admin removes them for a guideline violation. Negative criticism and profanity alone are not grounds for removal. Replies must belong to the same property.
Rate limiting needs a decision
There is no standard built-in rate limiter. An ad-hoc database limit is possible, but requires your approval of that tradeoff. Suggested starting point: 5 comments per minute per account. This has not been implemented.
Sample and next steps
The preview now includes 23 Springwood Dr, Asheville, NC 28805: $620,000 asking price, 4 bedrooms, 3 bathrooms, 2,099 sq ft, built 1969, 0.66 acres, Botany Woods. Source: the supplied Zillow listing, checked November 11, 2026. Previous recorded sale price is not verified; loan type is Unknown. A photo placeholder is used pending authorization. The fictional property and its three illustrative comments remain separate.
You selected preview changes only. No property record has been written to the database. Live registration, comments, replies and admin editing require approval of the proposed tables and designation of an admin; they cannot be confirmed yet. No services or paid add-ons have been enabled.