Войти

Показать полную графическую версию : mysql как лутше построить структуру таблиц в базе?


Страниц : [1] 2

E-mail
23-04-2005, 16:50
есть:

куча народу около тысячи.

каждый человек имеет:

-имя фамилию отчество
-автобиографию
-свою фотографию
-адрес проживания
-схему проезда до него
-телефон(ы) и секреторя(ей) на телефоне(нах)
-факс(ы)
-электронный(е) адрес(а) почты
-оператор(ов) электронного(ых) адреса(ов) почты
-сайт(ы)
-фотография(ии) сотрудника(ов)
-описание(я) к фотографии(ий) сотрудника(ов)
-фио своего боса
-фотографию своего боса


этот человек занимается разными видами работ:

-название вида работы
-фотография визуализируящая вид работы
-описание вида работы кратко
-описание вида работы полно

и таких работ может быть для каждого человека от одной до пятисот.

этот человек имеет при себе документы:

-название документа
-фотография документа

---------------------------------------
ну и что тут можно сделать?
причем каждый человек имеет инфу о себе никак, абсолютно никак не пересекающююся с инфой другого человека.

хелп..:)

Vlad Drakula
23-04-2005, 18:45
table #1
ID
BossID
-имя фамилию отчество
-автобиографию
-свою фотографию
-адрес проживания
-схему проезда до него

table #2
ID
TelType
-телефон(ы) и секреторя(ей) на телефоне(нах) факс(ы)

table #3
ID
электронный(е) адрес(а) почты

table #4
ID
-сайт(ы)

table #5
ID
FotoID
фотография(ии) сотрудника(ов)

table #6
FotoID
описание(я) к фотографии(ий) сотрудника(ов)

table #7
ID
-название вида работы
-фотография визуализируящая вид работы
-описание вида работы кратко
-описание вида работы полно

table #8
ID
-название документа
-фотография документа

PS
ну и чего тут сложного ;)

E-mail
23-04-2005, 19:28
Vlad Drakula, во-первых пасип за отклик,

во вторых, что такое:
FotoID
TelType
BossID
?
откуда берется у тебя?..:)

сложность в том, что ты это сделал для одного человека, и у этого человека только один вид выполняемых работ, а этих видов для ОДНОГО человека может быть много(
и людей таих около тысячи..

не буду же я создовать восемь таблиц для каждого человека?:)
или я чегото не понял?
хелп

E-mail
23-04-2005, 19:33
причем количество видов работ у человека, может менятся со временем...

E-mail
23-04-2005, 19:40
да и вообще вся инфа может менятся со временем включая имя человека:)

Vlad Drakula
23-04-2005, 19:47
E-mail
BossID - ID боса
TelType - тип телефона, факса....
FotoID - ID фотографии

E-mail
23-04-2005, 19:58
Vlad Drakula
и что они делают, и предыдущий вопрос в силе.

Vlad Drakula
23-04-2005, 20:14
E-mail они создают связи между таблицами!

E-mail
23-04-2005, 20:58
maaaaaaaaar !!!!!!! :)

Vlad Drakula
23-04-2005, 21:01
E-mail :lol:

E-mail
23-04-2005, 21:56
Vlad Drakula точно...

mar
23-04-2005, 22:03
ну и ну :)
E-mail
тебе же Влад русским языком сказал они создают связи между таблицами. Либо ты разберешься в этом понятии, либо о базах данных лучше забыть.
Имеем первую таблицу "people". Вот такую:
id -- уникальный номер
login -- имя login
password -- пароль
perms_id -- номер - ссылка на уникальный id таблицы "права (и обязанности ;))"
location_id -- номер - ссылка на уникальный id таблицы "где живет"
===
и другие таблицы:

perms
id -- уникальный номер
name -- название прав и обязанностей

location. Вот такую:
id -- уникальный номер
name -- название

Заполняем первую таблицу:
1, E-mail, 3, 2
2, Vlad Drakula, 1, 1
3, mar , 2, 1

вторая таблица (perms)
1, admin
2, moder
3, user

третья таблица
1, Питер
2, Москва

Таким образом у нас в записи первого юзера (твоей то бишь) стоит ссылка на его статус (user) и город (Москва)
В качестве домашнего задания - что написано про меня и Влада? ;)

E-mail
23-04-2005, 22:18
mar
ты модер, а влад админ:) живете в питере, а про ячейки логин и пароль забыла?;) Lol, это вроде в моей голове уложилось(перечитывал несколько раз твой прошлый пост и все ссылки которые давала).

проблема в другом, я НЕПРЕДСТАВЛЯЮ, как можно соструктуировать:

виды работ Влада(кпримеру):

1 програминг
2 верстка
3 дизайн
4 флуд

твои виды работ(к примеру):

1 очистка флуда
2 вправление мозгов в нужном направлении
3 пропаганда презервративов
4 исправление ошибок

мои виды работ(к примеру):

1 постоянные жалобы
2 задование вопросов
3 излучение доброй воли
4 обоятельное общение

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

Vlad Drakula
23-04-2005, 22:22
Уважаемый E-mail вы мануал по MySQL почитайте... там все разжовано... причем даже на русском!!!

E-mail
23-04-2005, 22:25
Vlad Drakula именно этим щас и занят + гугление, однако уважаемый дракула - непомогает, вот и сижу еще плюс на форуме. гы сына лол:)

mar
23-04-2005, 22:43
создаем одну таблицу "виды работ" - ocupation
id
name

еще одну таблицу user_ocupation
user_id
ocupation_id

получаем для тебя
1, 100
1, 202
1, 203

где в ocupation
100 постоянные жалобы
202 задование вопросов
203 излучение доброй воли

E-mail
23-04-2005, 22:53
ха, точно! спасип! ты настоящий друг, программер, и т.д.:)
тогда еще вопрос, как сделать так чтобы не использовать user_id, perms_id, location_id и т.п, кроме ocupation_id (потому как это разветвление информации для каждого человека)?
можноли сделать так чтобы они все(кроме ocupation_id) были равны id автоматически при добавлении в базу инфы о человеке?

E-mail
24-04-2005, 00:08
mar,
а как по ней лазать??
по таблице user_ocupation?

т.е. придется искать все записи с user_id=1 ??? или я опять чтото недопонимаю?.......(((

mar
24-04-2005, 01:08
E-mail
а что тут такого? повесь на нее индексы и выбирай занятия пользователя:
SELECT uo.ocupation_id, o.name FROM user_ocupation uo, ocupation o WHERE uo.user_id = 1 AND o.id = uo.ocupation_id
или сразу только занятие пользователя:
SELECT o.name FROM user_ocupation uo, ocupation o WHERE uo.user_id = 1 AND o.id = uo.ocupation_id
зы - сударь, Вы бы все-таки руководства пользователя и основы SQL посмотрели? а?

E-mail
24-04-2005, 02:41
а если у меня есть две таблицы:

#table1
id
name

#table2
fone
fax

в таблице table1:
'1', 'Mar'
'2', 'Dracula'
'3', 'Prisoner'
'4', 'Gamburger'

в таблице table2:
'911', '02'
'03', '03'
'01', '01'
'04', '04'

как в таблице table2 найти номер строки соответствующий номеру id в таблице table1 ??? (((..




© OSzone.net 2001-2012