Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   mysql как лутше построить структуру таблиц в базе? (http://forum.oszone.net/showthread.php?t=48445)

E-mail 23-04-2005 16:50 318420

mysql как лутше построить структуру таблиц в базе?
 
есть:

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

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

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


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

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

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

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

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

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

хелп..:)

Vlad Drakula 23-04-2005 18:45 318438

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 318454

Vlad Drakula, во-первых пасип за отклик,

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

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

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

E-mail 23-04-2005 19:33 318457

причем количество видов работ у человека, может менятся со временем...

E-mail 23-04-2005 19:40 318458

да и вообще вся инфа может менятся со временем включая имя человека:)

Vlad Drakula 23-04-2005 19:47 318461

E-mail
BossID - ID боса
TelType - тип телефона, факса....
FotoID - ID фотографии


E-mail 23-04-2005 19:58 318463

Vlad Drakula
и что они делают, и предыдущий вопрос в силе.

Vlad Drakula 23-04-2005 20:14 318469

E-mail они создают связи между таблицами!

E-mail 23-04-2005 20:58 318481

maaaaaaaaar !!!!!!! :)

Vlad Drakula 23-04-2005 21:01 318483

E-mail :lol:

E-mail 23-04-2005 21:56 318499

Vlad Drakula точно...

mar 23-04-2005 22:03 318503

ну и ну :)
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 318509

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

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

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

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

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

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

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

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

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

Vlad Drakula 23-04-2005 22:22 318510

Уважаемый E-mail вы мануал по MySQL почитайте... там все разжовано... причем даже на русском!!!

E-mail 23-04-2005 22:25 318511

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

mar 23-04-2005 22:43 318513

создаем одну таблицу "виды работ" - 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 318515

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

E-mail 24-04-2005 00:08 318531

mar,
а как по ней лазать??
по таблице user_ocupation?

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

mar 24-04-2005 01:08 318538

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 318567

а если у меня есть две таблицы:

#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 ??? (((..

mar 24-04-2005 12:43 318653

E-mail
Цитата:

как в таблице table2 найти номер строки соответствующий номеру id в таблице table1 ??? (((..
Никак. Перечитай вниматеьлно примеры выше этажем. Если хочешь работать с несколькими таблицами одновременно, между ними должна быть установлена связь (Например, id таблицы юзеров <-> user_id таблицы связи юзеров и профессий).
Что касается телефонов, то их, скорей всего вообще не имеет смысла выносить в отдельную таблицу. Добавь полями к пользователям.
Но самое главное :read: - надо очень внимательно почитать что-нибудь по основам SQL. Желательно книжку с примерами и заданиями после каждой главы. И после этого уже спокойно посмотреть на свою задачу.

ruslandh 24-04-2005 13:36 318665

Это как вы таблицы сформировали :)
Если первой строке первой таблице соответствует первая строка второй, то тут всё тривиально :)
А если первой строке первой таблице соответствует третья строка второй таблицы, то надо ещё одну таблицу соответствия вводить, только зачем ?

http://www.osp.ru/win2000/sql/projti...ps05_print.htm
http://dev.mysql.com/doc/mysql/ru/mysql-indexes.html
http://www.google.ru/search?hl=ru&in...E%E8%F1%EA&lr=

E-mail 24-04-2005 17:07 318701

ruslandh во, про тривиальность судовольствием послушал бы:)

ps пошел по ссылкам:)

Dutchman Mihel 25-04-2005 02:23 318803

E-mail

Чтобы спланировать базу неплохо нарисовать схемку с табличками и стрелочками на бумажке (или воспользоваться чем-нибудь вроде схемы данных в MS Access). В плане sql слабо помогает, но голова пухнет меньше.

archy 25-04-2005 11:23 318923

E-mail
Пора вам молодой человек занятся чтением технической литературы :)


Время: 08:38.

Время: 08:38.
© OSzone.net 2001-