mysql как лутше построить структуру таблиц в базе?
есть:
куча народу около тысячи. каждый человек имеет: -имя фамилию отчество -автобиографию -свою фотографию -адрес проживания -схему проезда до него -телефон(ы) и секреторя(ей) на телефоне(нах) -факс(ы) -электронный(е) адрес(а) почты -оператор(ов) электронного(ых) адреса(ов) почты -сайт(ы) -фотография(ии) сотрудника(ов) -описание(я) к фотографии(ий) сотрудника(ов) -фио своего боса -фотографию своего боса этот человек занимается разными видами работ: -название вида работы -фотография визуализируящая вид работы -описание вида работы кратко -описание вида работы полно и таких работ может быть для каждого человека от одной до пятисот. этот человек имеет при себе документы: -название документа -фотография документа --------------------------------------- ну и что тут можно сделать? причем каждый человек имеет инфу о себе никак, абсолютно никак не пересекающююся с инфой другого человека. хелп..:) |
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 ну и чего тут сложного ;) |
Vlad Drakula, во-первых пасип за отклик,
во вторых, что такое: FotoID TelType BossID ? откуда берется у тебя?..:) сложность в том, что ты это сделал для одного человека, и у этого человека только один вид выполняемых работ, а этих видов для ОДНОГО человека может быть много( и людей таих около тысячи.. не буду же я создовать восемь таблиц для каждого человека?:) или я чегото не понял? хелп |
причем количество видов работ у человека, может менятся со временем...
|
да и вообще вся инфа может менятся со временем включая имя человека:)
|
E-mail
BossID - ID боса TelType - тип телефона, факса.... FotoID - ID фотографии |
Vlad Drakula
и что они делают, и предыдущий вопрос в силе. |
E-mail они создают связи между таблицами!
|
maaaaaaaaar !!!!!!! :)
|
E-mail :lol:
|
Vlad Drakula точно...
|
ну и ну :)
тебе же Влад русским языком сказал Цитата:
Имеем первую таблицу "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) и город (Москва) В качестве домашнего задания - что написано про меня и Влада? ;) |
mar
ты модер, а влад админ:) живете в питере, а про ячейки логин и пароль забыла?;) Lol, это вроде в моей голове уложилось(перечитывал несколько раз твой прошлый пост и все ссылки которые давала). проблема в другом, я НЕПРЕДСТАВЛЯЮ, как можно соструктуировать: виды работ Влада(кпримеру): 1 програминг 2 верстка 3 дизайн 4 флуд твои виды работ(к примеру): 1 очистка флуда 2 вправление мозгов в нужном направлении 3 пропаганда презервративов 4 исправление ошибок мои виды работ(к примеру): 1 постоянные жалобы 2 задование вопросов 3 излучение доброй воли 4 обоятельное общение и таких людей больше тысячи и будут возрастать, а их виды работ никак между собой не связаны и для всех уникальны. чтоже, придется для каждого человека создавать свою таблицу?? |
Уважаемый E-mail вы мануал по MySQL почитайте... там все разжовано... причем даже на русском!!!
|
Vlad Drakula именно этим щас и занят + гугление, однако уважаемый дракула - непомогает, вот и сижу еще плюс на форуме. гы сына лол:)
|
создаем одну таблицу "виды работ" - ocupation
id name еще одну таблицу user_ocupation user_id ocupation_id получаем для тебя 1, 100 1, 202 1, 203 где в ocupation 100 постоянные жалобы 202 задование вопросов 203 излучение доброй воли |
ха, точно! спасип! ты настоящий друг, программер, и т.д.:)
тогда еще вопрос, как сделать так чтобы не использовать user_id, perms_id, location_id и т.п, кроме ocupation_id (потому как это разветвление информации для каждого человека)? можноли сделать так чтобы они все(кроме ocupation_id) были равны id автоматически при добавлении в базу инфы о человеке? |
mar,
а как по ней лазать?? по таблице user_ocupation? т.е. придется искать все записи с user_id=1 ??? или я опять чтото недопонимаю?.......((( |
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 |
а если у меня есть две таблицы:
#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 ??? (((.. |
E-mail
Цитата:
Что касается телефонов, то их, скорей всего вообще не имеет смысла выносить в отдельную таблицу. Добавь полями к пользователям. Но самое главное :read: - надо очень внимательно почитать что-нибудь по основам SQL. Желательно книжку с примерами и заданиями после каждой главы. И после этого уже спокойно посмотреть на свою задачу. |
Это как вы таблицы сформировали :)
Если первой строке первой таблице соответствует первая строка второй, то тут всё тривиально :) А если первой строке первой таблице соответствует третья строка второй таблицы, то надо ещё одну таблицу соответствия вводить, только зачем ? 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= |
ruslandh во, про тривиальность судовольствием послушал бы:)
ps пошел по ссылкам:) |
E-mail
Чтобы спланировать базу неплохо нарисовать схемку с табличками и стрелочками на бумажке (или воспользоваться чем-нибудь вроде схемы данных в MS Access). В плане sql слабо помогает, но голова пухнет меньше. |
E-mail
Пора вам молодой человек занятся чтением технической литературы :) |
Время: 08:38. |
Время: 08:38.
© OSzone.net 2001-