|
|
|
| Здравствуйте, всем.
Начинаю писать свои компоненты.
Суть в том:
Есть год. У каждого года есть свои события и люди (то бишь люди года и события года), есть месяца, в которых также могут быть события и люди, которые в свою очередь могу быть событиями и людьми года, а также есть дни, которые также содержат события и людей, которые в свою очередь могут быть событиями месяца и года.
Подскажите, пожалуйста, как лучше организовать структуру таблиц для таких данных. По идеи должны быть только 2 таблицы: "события" и "люди", которые как-то упорядочиваются по датам.
Какую структуру выбрать?
Заранее, спасибо. | |
|
|
|
|
|
|
|
для: Antohsa
(21.01.2011 в 04:23)
| | если одна таблица люди:
фио, год, месяц , день
другая таблица события
название сбытия, год, месяц, день | |
|
|
|
|
|
|
|
для: lightning.say
(21.01.2011 в 05:55)
| | Но одно и то же событие и человек может принадлежать разным датам? Как быть? | |
|
|
|
|
|
|
|
для: Antohsa
(21.01.2011 в 15:02)
| | событие разным датам принадлежать не может.
событие и будет связывать человека с датой. | |
|
|
|
|
|
|
|
для: Trianon
(21.01.2011 в 15:03)
| | Да. Событие не может быть принадлежать разным датам, согласен.
Но человек то может? Ну там человек 2000 года, а потом он же и 2003, например, и т.д. | |
|
|
|
|
|
|
|
для: Antohsa
(21.01.2011 в 15:06)
| | у человека имя и фамилия есть, а не то, какого он года. Вот они то и будут жить в таблице.
А то что Человек A фигурирует в году B - описыватся событием C.
Обычное отношение многие ко многим (M:N) через связующую таблицу.
Она и будет таблицей событий. | |
|
|
|
|
|
|
|
для: Trianon
(21.01.2011 в 15:10)
| | События и человек вообще никак не связаны... Например, 1941 год - событие года начало ВОВ, человек года Адольф Гитлер, тут просто совпало, а скажем 2020 год - ядерная война, а человек года пусть будет тот, кто придумает Машину Времени.
Вы как-то все усложняете для меня... =))) | |
|
|
|
|
|
|
|
для: Antohsa
(21.01.2011 в 15:15)
| | с такими примерами, пожалуй, я и вправду лучше в сторонке пешком постою. | |
|
|
|
|
|
|
|
для: Trianon
(21.01.2011 в 15:41)
| | =))) ну примеры просто быстро придуманные...
но все-таки проблема осталась: один и тот же человек может "принадлежать" разным датам | |
|
|
|
|
|
|
|
для: Trianon
(21.01.2011 в 15:03)
| | Так у него события и люди существуют вне зависимости друг от друга изначально, а вы предлагаете на каждого человека ввести по событию и связать с датой, и не на каждое событие имеется личность отличившаяся в определенное время, ее тоже надо придумать? | |
|
|
|
|
|
|
|
для: lightning.say
(21.01.2011 в 17:17)
| | Верно.
Trianon додумывает и меняет задачи за меня. =))))) | |
|
|
|
|
|
|
|
для: Antohsa
(21.01.2011 в 17:31)
| | мож действительно будет три таблицы, как такой вариант?
событие
id | event_name
дата
data | man_id | event_id
люди
id | man_name | |
|
|
|
|
|
|
|
для: lightning.say
(21.01.2011 в 17:44)
| | тогда в таблице с датами man_id и event_id должны содержать множества с из id людей и событий?
Как это реализовать? Записывать через точку запятой и разбирать путем PHP? | |
|
|
|
|
|
|
|
для: Antohsa
(21.01.2011 в 17:48)
| | можно хранить в ячейке массив, но не знаю насколько это правильно в данном случае
1, 2, 5, 7
потом обработка $mas = explode(",", $row['man_id']);
мож кто-то придумает более верное решение.... | |
|
|
|
|
|
|
|
для: lightning.say
(21.01.2011 в 18:02)
| | а MySQL выборку потом можно будет делать типа where id= array() ? | |
|
|
|
|
|
|
|
для: Antohsa
(21.01.2011 в 04:23)
| | Event:
id | man_id | event_name | date
Man:
id | FIO
надо выборку по годам -
"WHERE YEAR(date) = year"
|
по месяцам -
"WHERE YEAR(date) = year AND MONTH(date) = month"
|
| |
|
|
|
|
|
|
|
для: Igorek
(21.01.2011 в 06:51)
| | т.е. события и люди будут иметь одинаковый год, месяц или день? а если разные? | |
|
|
|
|
|
|
|
для: lightning.say
(21.01.2011 в 07:42)
| | может я не до конца понял условие, но в любом случае - событие это определенная дата. я так понял | |
|
|
|
|
|
|
|
для: Antohsa
(21.01.2011 в 04:23)
| | Какое-то отношение события и люди имеют друг к другу ?
или надо вывести только то что совпало по времени? | |
|
|
|
|
|
|
|
для: Косорылый
(21.01.2011 в 10:17)
| | Никакого... В принципе могут быть взаимосвязаны конечно, но по сути никакого.
Надо вывести только то, что совпало по дате. Верно. | |
|
|
|
|
|
|
|
для: Antohsa
(21.01.2011 в 04:23)
| | и третью таблицу - временнЫх фильтров.
Сперва хотел написать - временнЫх диапазонов, но почитав обсуждение, засомневался, может и вправду речь идет о наборах дат. | |
|
|
|