2015-02-08 7 views
1

Я использую функцию голосования, позволяющую пользователям голосовать за свои любимые изображения. Они могут голосовать только за 3 изображения. Ничего больше или меньше. Поэтому я использую флажки для проверки. Мне нужно сохранить эти голоса в моей базе данных.Дизайн базы данных для голосования

Вот что я до сих пор:

| voteID | имя | EMAILADDRESS | ICNo | ImageID

(где ImageID внешний ключ к таблице изображений)

Я все еще учусь о системах баз данных, и я чувствую, что это не очень хорошая структура базы данных с учетом некоторых областей, такими как электронная почта адрес и номер IC должны быть повторены.

Например,

|voteID | name| emailAddress  | ICNo  | imageID 
    1  BG [email protected] G822A28A   10 
    2  BG [email protected] G822A28A   11 
    3  BG [email protected] G822A28A   12 
    4  MO [email protected] G111283Z   10 
+0

Ваши чувства верны. http://www.databaseprimer.com/pages/table-relationships/ –

ответ

4

У вас есть три "вещи" в вашей системе - образы, люди, и голосов.

Изображение может иметь несколько голосов (от разных людей), а человек может иметь несколько голосов (для разных изображений).

Один из способов представить это в виде диаграммы выглядит следующим образом:

Object relationships

Так вы храните информацию о человеке в одном месте (таблица Person), о изображений в одном месте (таблица изображений) и Голоса в одном месте. Отношение «куриных ног» между ними показывает, что у одного человека может быть много голосов, и один образ может иметь много голосов. («Многие» означают «более одного»).

 Смежные вопросы

  • Нет связанных вопросов^_^