Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] ID użytkownika lub e-mail
Forum PHP.pl > Forum > Przedszkole
SmokAnalog
Witajcie,

robię system wiadomości. Mogą one być wysyłane od zalogowanego użytkownika lub niezarejestrowanego adresu e-mail. W jaki sposób najładniej przechować to w bazie? Mój pomysł na teraz jest taki:
Kod
tabela `messages`
- id
- content

tabela `users`
- id
- email
- password

tabela `emails`
- id
- email

tabela `users_messages`
- id
- user_id
- message_id
- type (enum: 'sender' lub 'recipient')

tabela `emails_messages`
- id
- email_id
- message_id
- type (enum: 'sender' lub 'recipient')


Opcjonalnie dla wydajności mógłbym jeszcze dodać pola `from` i `to` do `messages`, które podpowiadałyby czy szukać w mailach czy userach.

Macie pomysły?
markuz
messages
- id
- user_id (Domyślnie 0)
- email_id (Domyślnie 0)
- type

Jeśli user_id == 0 - Wiadomość wysłana na email
Jeśli user_id != 0 - Wiadomość wysłana do użytkownika

Zamiast email_id możesz dać polę email i zapisywać adres bezpośrednio w tej tabeli bez zzbędnej tabeli (emails) - ale to wsystko zależy od twoich potrzeb.
SmokAnalog
Dzięki, właśnie zastanawiałem się na ile wprowadzanie dwóch pól, z których jedno zawsze jest puste, jest powszechne. Zero to nie jest najlepszy pomysł, jeśli chcę używać klucza obcego, ale zawsze zostaje NULL.

A co sądzą inni forumowicze? Czy zwiększanie tabeli wszerz to dobry pomysł w tym przypadku?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.