|
|
|
Какой из вариантов отношений выбрать
|
|||
|---|---|---|---|
|
#18+
В свободное время решил сделать сайт для локалки: помощь впервые попавшим и тонущим в море интернета, и организация пользователей. Покритикуйте, пожалуйста, то, что получилось. Возникла необходимость учёта пользователей: ip, общественно полезная инфа о компе (наличие фтп, например), пользователь (=человек=физик). Соответственно их я и выделил в отдельные сущности: ip, computer, user. В таком же виде нужно будет получать и "общий отчёт". Иногда встречаются следующие... ситуации: пользователь имеет несколько компов, несколько пользователей имеют комп, комп имеет несколько ip, что должно учитываться в бд. Сейчас я спроектировал следующие таблицы: users [user_id, инфа о пользователе], users2computers [user_id, comp_id], computers [comp_id, инфа о компах], ip [ip_id, comp_id] Вот только кое-что меня смущает. Одной из самых частых выборок будет: пользователь(и) по ip, то есть нужно будет делать два join'а, но примерно о трети пользователей известны лишь их ip, то есть сущность computer будет просто лишним связующим звеном между ip и users. Не стоит ли связать все эти три сущности попарно? Или связать все три через одну таблицу наподобие table [ip_id, user_id, comp_id]? Или может как-то по-другому лучше спроектировать? Буду благодарен, если подскажите ещё следующий нюанс. Кроме "нормальных" ip, внутри сети используются самоназначенные ip c-класса, а в туманном будущем планируется переход на ipv6. Также три раза за 5 лет была замена адресов. В связи со всем этим стоит ли ip всех типов хранить в одной таблице (и различать их тип в колонке), или лучше иметь таблицы для каждого типа ip? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2009, 17:16 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=32&tid=1543471]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
159ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
18ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 444ms |

| 0 / 0 |
